gpt4 book ai didi

python - 迭代嵌套列表并选择某些元素并创建一个新列表

转载 作者:行者123 更新时间:2023-12-02 01:54:33 24 4
gpt4 key购买 nike

一个例子:

list = [[2, 1, 2, 3, 4],
[0, 4, 5],
[1, 8, 9]]

因此,嵌套列表中的第一个索引决定将哪些后续数字放入非嵌套列表中。

[2, 1, 2, 3, 4] -> 2: so 1 and 2 gets picked up
[0, 4, 5] -> 0: no number gets picked up
[1, 8, 9] -> 1; number 8 gets picked up

输出为:

[1, 2, 8]

这是我到目前为止所拥有的:

def nested_list(numbers):
if isinstance(numbers[0], list):
if numbers[0][0] > 0:
nested_list(numbers[0][1:numbers[0][0] + 1])
else:
numbers = list(numbers[0])

return numbers + nested_list(numbers[1:])

我尝试通过递归获取列表,但出现问题。我错过了什么或者即使没有递归也可以做到这一点?

最佳答案

您尝试在此处使用列表理解和元组解包。

[val for idx, *rem in lst for val in rem[:idx]] 
# [1, 2, 8]

NB This solution assumes you would always have a sub-list of size 1 or greater. We can filter out empty sub-lists using filter(None, lst)

关于python - 迭代嵌套列表并选择某些元素并创建一个新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69783807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com