gpt4 book ai didi

python - 如何指定嵌套列表的每个子列表中特定元素的索引?

转载 作者:行者123 更新时间:2023-12-02 05:34:19 25 4
gpt4 key购买 nike

我有几个嵌套列表,它们都是子列表内彼此的排列:

x = [
['a', [['b', 'c', [['e', 'd']]]]],
['a', [['b', [['e', 'd']], 'c']]],
[[['b', 'c', [['e', 'd']]]], 'a'],
['a', [[[['d', 'e']], 'c', 'b']]],
['a', [['b', [['d', 'e']], 'c']]]
]

我只想选择那些符合此要求的子列表:如果子列表中包含元素“d”或“b”,则它在该子列表中的索引必须为 0。因此仅在 x 中的列表中

['a', [['b', [['d', 'e']], 'c']]]

必须被选中,因为“d”在其子列表中的索引为 0,同时“b”在其子列表中的索引为 0。我尝试过这个功能:

def limitation(root, nested):
result = []
for i in nested:
if isinstance(i, list):
return limitation(root, i)
else:
if (i in ['d', 'b'] and nested.index(i) == 0):
return root
for i in x:
print(limitation(i, i))

但输出是这样的:

['a', [['b', 'c', [['e', 'd']]]]]
['a', [['b', [['e', 'd']], 'c']]]
[[['b', 'c', [['e', 'd']]]], 'a']
['a', [[[['d', 'e']], 'c', 'b']]]
['a', [['b', [['d', 'e']], 'c']]]

所以它不认为“d”和“b”在子列表中必须具有索引 0。你能帮我解决这个问题吗?

最佳答案

如果子列表包含'b'或'd',则该元素必须位于第一个索引 [0 ]:

x = [
['a', [['b', 'c', [['e', 'd']]]]],
['a', [['b', [['e', 'd']], 'c']]],
[[['b', 'c', [['e', 'd']]]], 'a'],
['a', [[[['d', 'e']], 'c', 'b']]],
['a', [['b', [['d', 'e']], 'c']]]
]


def limitation(nested):
for index, subelement in enumerate(nested):
if isinstance(subelement, list):
if not limitation(subelement):
return False
else:
if subelement in ['d', 'b'] and not index:
return False
return True


for element in x:
if limitation(element):
print(element) # ['a', [['b', [['d', 'e']], 'c']]]

关于python - 如何指定嵌套列表的每个子列表中特定元素的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58680008/

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