【发布时间】:2021-08-20 06:24:35
【问题描述】:
我希望能够在嵌套列表中获取每个数字的索引,例如我有以下列表:
T = ['苹果', [10, 5, ['橙色']], 3]
我想提取这样的值:
数字列表:[10,5,3] 数字地址:[[1, 0], [1, 1], [2]]
例如,数字“3”是列表中的第三个值(索引 2),而数字“5”是第二个列表中的第二个值,因此它将是 [1,1]。
我已经编写了以下带有 for 循环的递归函数:
indices = []
List_numbers = []
Address_numbers = []
def Numbers(T):
for index, elem in enumerate(T):
if isinstance(elem, int):
List_numbers.append(elem)
Address_numbers.append(indices + [index])
if isinstance(elem, list):
indices.append(index)
Fruits(elem)
print('List of numbers: ' + str(List_numbers))
print('Address of numbers: ' + str(Address_numbers))
此代码的问题是,当它到达最后一个值并需要退出列表时,它保持相同的索引,因此输出的地址是这样的:
List of numbers: [10, 5, 3]
Address of numbers: [[1, 0], [1, 1], [1, 2, 2]]
我已经尝试了一切来解决它,但老实说我不确定如何解决这个问题,有人可以帮忙吗?
【问题讨论】: