列出超出范围的索引,并给出静止的输出



`


list1  = [0,[1, 2, 3], [7, [5, 6]], [7], [8, 9]]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
ans=[]
i = 0
n = len(list1)-1
while(n-2):
print(type(list1))
condition = (type(list1[i]) == int)
if condition == True:
ans.append(list1[i])

else:

for j in range(0, len(list1[i])):
condition1 = (type(list1[i][j]) == list)
if condition1 == True:
for k in range(0, len(list1[i][j])-1):
ans.append(list1[i][j][k])
else:
ans.append(list1[i][j])

i+=1

print(ans)

有人能帮我吗`

我试图简化列表,我使用列表来保存它,但WHy范围索引。而且我的ans正在得到拯救并给出正确的输出。

列表1中有5个项目(见下文):

0
[1, 2, 3]
[7, [5, 6]]
[7]
[8, 9]

您的代码正在递增,超出此列表的索引



要使列表变平:

list1  = [0,[1, 2, 3], [7, [5, 6]], [7], [8, 9]]
def flatten_list(my_list):
is_not_Flat = True
my_list = [item for sublist in [item if type(item)==list else [item] for item in my_list] for item in sublist]

while is_not_Flat:
for item in my_list:
if type(item) == list:
my_list = flatten_list(my_list)

is_not_Flat = False

return my_list

print(flatten_list(list1))

输出:

[0, 1, 2, 3, 7, 5, 6, 7, 8, 9]

最新更新