def info_msg(self):
return "{0}#{1}#{2}".format(info, self.content, self.hidden)
我有这个代码。我想将list_d中的这些数字传递给list_e,但结果是:
list_d = ["a","b","c",3,5,4,"d","e","f",1,"ee"]
list_e = []
print("Before: %s"%(list_d))
print("Before: %s"%(list_e))
for item in list_d:
if isinstance(item,int):
list_d.pop(item)
list_e.append(item)
print("After: %s"%(list_d))
print("After: %s"%(list_e))
不知何故5和1没有弹出,1附加到list_e但5不是。我的代码出了什么问题?
答案 0 :(得分:5)
您在迭代时修改列表。您可以使用列表推导来制作两个列表,但我会先了解为什么您有一个多类型列表
non_ints = [not isinstance(a, int) for a in list_d]
ints = [isinstance(a, int) for a in list_d]
或作为单个互动版本
non_ints = []
ints = []
for a in list_d:
if isinstance(a, int):
ints.append(a)
else:
non_ints.append(a)