def flatten_lists(nested):
'''
>>> flatten_lists([[0], [1, 2], 3])
[0, 1, 2, 3]
'''
list_of_lists = ([[0], [1, 2], 3])
List_flat = []
for i in range(len(list_of_lists)):
for j in range (len(list_of_lists[i])):
List_flat.append(list_of_lists[i][j])
return List_flat
我想压平列表[[0], [1, 2], 3]
,但我遇到了错误:
TypeError: object of type 'int' has no len()
如何解决这个
您试图将外部列表的每个元素都视为列表。问题是内部列表中的某些元素不是列表。对于您的代码,一个简单的修复方法是将内部for
循环封装在try
/except
块中:
for i in range(len(list_of_lists)):
try: # if the element is a list then add it
for j in range (len(list_of_lists[i])):
List_flat.append(list_of_lists[i][j])
except TypeError: # so, if iteration fails, the element isn't a list
List_Flat.append(list_of_lists[i])