gpt4 book ai didi

python - 我将嵌套列表作为 Python 字典的条目。如何打印第一个元素为 "S"的嵌套列表?

转载 作者:行者123 更新时间:2023-11-28 20:44:18 25 4
gpt4 key购买 nike

我有一本看起来像这样的字典:

my_dict = {(1,0): ['A', 'B'],
(1,1): [[['E'], [['A', 'B'], ['C', 'D']]]],
(1,2): [],
(2,1): [[['E'], [['A', 'B'], ['C', 'F']]], [['S'], [[[['E'], [['A', 'B'], ['C', 'D']]]], [[['G'], [['H', 'J'], [[['E'], [['A', 'B'], ['C', 'F']]]]]]]]]]
}

如何检索我找到的第一个以 ['S'] 开头的子列表?对于上面的例子,我想得到:

answer = [['S'], [[[['E'], [['A', 'B'], ['C', 'D']]]], [[['G'], [['H', 'J'], [[['E'], [['A', 'B'], ['C', 'F']]]]]]]]]

我不知道'S'的嵌套有多深。

编辑:

我尝试按如下方式递归执行此操作:

def recursive_check(longlist):
for a_list in longlist:
if 'S' in a_lis:
return a_lis
else:
rec_check(a_list)

我收到以下错误:

运行时错误:超出最大递归深度

编辑:列表可能看起来不同并且每次嵌套都不同。

最佳答案

def first_s(lst):
if not (isinstance(lst, list) and lst):
return None
if lst[0] == ['S']:
return lst
else:
for x in lst:
y = first_s(x)
if y:
return y

使用你的my_dict:

>>> print first_s(my_dict.values())
[['S'], [[[['E'], [['A', 'B'], ['C', 'D']]]], [[['G'], [['H', 'J'], [[['E'], [['A', 'B'], ['C', 'F']]]]]]]]]

关于python - 我将嵌套列表作为 Python 字典的条目。如何打印第一个元素为 "S"的嵌套列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26879306/

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