我有一个包含 ID 号的列表。列表中的某些元素是另一个列表。要将嵌套列表转换为单个列表,我使用集合模块编写了一个递归函数。
我的代码如下。
from collections import Iterable
def single_list(list):
for item in list:
if isinstance(item, Iterable):
yield from single_list(item)
else:
yield item
Item_list = [10,20,[30,40],[50,'Null',70],100]
items_single=single_list(Item_list)
for item in items_single:
print(item)
当我运行我的程序时,我收到以下错误消息。
Traceback (most recent call last):
File "/Research/SoftDev/SEPJ/StackOverflow_qs.py", line 42, in <module>
for i in items_single:
File "/Research/SoftDev/SEPJ/StackOverflow_qs.py", line 36, in single_list
yield from single_list(item)
File "/Research/SoftDev/SEPJ/StackOverflow_qs.py", line 36, in single_list
yield from single_list(item)
File "/Research/SoftDev/SEPJ/StackOverflow_qs.py", line 36, in single_list
yield from single_list(item)
[Previous line repeated 986 more times]
File "/Research/SoftDev/SEPJ/StackOverflow_qs.py", line 35, in single_list
if isinstance(item, Iterable):
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/abc.py", line 184, in __instancecheck__
if subclass in cls._abc_cache:
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_weakrefset.py", line 75, in __contains__
return wr in self.data
RecursionError: maximum recursion depth exceeded in comparison
Process finished with exit code 1
我不知道如何修复错误。