Python 循环遍历列表中的每个元素
在python中,如何循环遍历列表中的每个元素。 例如,如果我有以下列表:Python 循环遍历列表中的每个元素,python,list,Python,List,在python中,如何循环遍历列表中的每个元素。 例如,如果我有以下列表: list = ["abc",3,(10,(11,12))] 我想把列表分成:['a','b','c',3,10,11,12] 现在我有: def combinelist(list): l = [] for item in list: l.append(item) return l 然而,这只是返回完全相同的列表。我如何彻底检查列表中的每个元素并拆分每个元素?谢谢你的帮助 我不知道用什么
list = ["abc",3,(10,(11,12))]
我想把列表分成:['a','b','c',3,10,11,12]
现在我有:
def combinelist(list):
l = []
for item in list:
l.append(item)
return l
然而,这只是返回完全相同的列表。我如何彻底检查列表中的每个元素并拆分每个元素?谢谢你的帮助 我不知道用什么优雅的方式来编码,所以
l = ["abc",3,('x','y')]
o = []
for i in l:
if isinstance(i, str):
o.extend(list(i))
elif isinstance(i, (tuple, list)):
o.extend(i)
else:
o.append(i)
print o
或:
甚至:
o = []
for i in l:
if isinstance(i, (str, list, tuple)):
o.extend(list(i))
else:
o.append(i)
print o
@Michael0x2a不太清楚,OP显示的不是一个iterables列表(你不能迭代
3
)@DavidRobinson-啊,你是对的。我没看到。我想你想要的是extend
,而不是append
lst.append([1,2,3])
会将列表[1,2,3]
添加到末尾,但是lst.extend([1,2,3])
会将三个单独的值1
、2
和3
添加到末尾。但是,当您在3
上尝试它时,会引发异常,并且它只会将(10,(11,12))
展平为两个值10
和(11,12)
。这就是为什么链接问题中的答案都使用递归或循环。
o = []
for i in l:
if isinstance(i, (str, list, tuple)):
o.extend(list(i))
else:
o.append(i)
print o