使用字典获取列表内列表中的所有项目



我还在学习基本的python,想问一下如果列表是这样的话,如何获取textDisplay中的所有项目?前的thx

dump_list = 
[ [{'snippet': {'textDisplay': 'Apple'}}], 
[{'snippet': {'textDisplay': 'Orange'}}, 
{'snippet': {'textDisplay': 'Grape'}},
{'snippet': {'textDisplay': 'Banana'}}],
[{'snippet': {'textDisplay': 'Avocado'}}]
]

我只能一个接一个地访问

print(dump_list[0][0]['snippet']['textDisplay'])

以及如何在不逐个打印的情况下进行这样的输出:

['Apple','Orange','Grape','Banana,'Avocado']

唯一真正复杂的是如何压平列表,这似乎是最优雅的选项:

[t['snippet']['textDisplay'] for t2 in dump_list for t in t2]

根据我对这个问题的理解,我认为你想打印苹果、橙子、葡萄等等

假设列表的长度可以更改,主列表中列表的长度也可以更改,则可以使用以下python 3代码打印所需的文本:

mainLength = len(dump_list)
for i in range(mainLength):
innerLength = len(dump_list[i])
for j in range(innerLength):
print(dump_list[i][j]['snippet']['textDisplay'])

这里我们获取主列表的长度和其中列表的长度。在打印时,我们选择"snippet"键来获取其中的dict,然后他们选择"textDisplay"键来打印所需的字符串。

您也可以将输出存储在列表中,而不是打印以将其打印为列表:

outputList = []
mainLength = len(dump_list)
for i in range(mainLength):
innerLength = len(dump_list[i])
for j in range(innerLength):
outputList.append(dump_list[i][j]['snippet']['textDisplay'])
print(outputList)

最简单的方法是使用带有两个循环的列表理解:

data = [ [{'snippet': {'textDisplay': 'Apple'}}], 
[{'snippet': {'textDisplay': 'Orange'}}, 
{'snippet': {'textDisplay': 'Grape'}},
{'snippet': {'textDisplay': 'Banana'}}],
[{'snippet': {'textDisplay': 'Avocado'}}]
]
fruits = [dct['snippet']['textDisplay'] for sublist in data for dct in sublist]
print(fruits)
# ['Apple', 'Orange', 'Grape', 'Banana', 'Avocado']

最新更新