Skip to main content
 首页 » 编程设计

python之列表列表和整数列表

2025年05月04日12myhome

我有一个包含整数的 python 列表列表,我需要将它转换成一个列表。

如果列表不包含任何整数(仅其他列表),我可以使用此处提供的解决方案:Making a flat list out of list of lists in Python

即,

[item for sublist in main_list for item in sublist] 

例如,

test_list = [[1,2,3,4,5,6], [7,8,9,10], [11,12,13,14]] 
test_list = [item for sublist in test_list for item in sublist] 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] 

但是,如果列表中包含整数,则此解决方案不起作用:

test_list_2 = [[1,2,3,4,5,6], 0, [7,8,9,10], [11,12,13,14]] 
test_list_2 = [item for sublist in test_list_2 for item in sublist] 
 
Traceback (most recent call last): 
 
File "<ipython-input-28-c6531e09f706>", line 1, in <module> 
test_list_2 = [item for sublist in test_list_2 for item in sublist] 
 
TypeError: 'int' object is not iterable 

有没有办法避免这个问题?谢谢。

请您参考如下方法:

你需要做这样的事情:

>>> test_list_2 = [[1,2,3,4,5,6], 0, [7,8,9,10], [11,12,13,14]] 
>>> def lift_int(v): 
...     if not isinstance(v, list):  
...         return [v] 
...     else: 
...         return v 
...  
>>> test_list_2 = [item for sublist in test_list_2 for item in lift_int(sublist)] 
>>> test_list_2 
[1, 2, 3, 4, 5, 6, 0, 7, 8, 9, 10, 11, 12, 13, 14]