2

我有个问题。

我有一个看起来像这样的嵌套列表。

x=    [[{'screen_name': 'BreitbartNews',
   'name': 'Breitbart News',
   'id': 457984599,
   'id_str': '457984599',
   'indices': [126, 140]}],
 [],
 [],
 [{'screen_name': 'BreitbartNews',
   'name': 'Breitbart News',
   'id': 457984599,
   'id_str': '457984599',
   'indices': [98, 112]}],
 [{'screen_name': 'BreitbartNews',
   'name': 'Breitbart News',
   'id': 457984599,
   'id_str': '457984599',
   'indices': [82, 96]}]]

主列表中有一些空列表。我要做的是提取 screen_name 并将它们附加为一个新列表,包括空列表(可能将它们标记为“null”)。

y=[]
for i in x :
    for j in i :
        if len(j)==0 :
            n = 'null'
        else :
            n = j['screen_name']
    y.append(n)    

我不知道为什么上面的代码会输出一个列表,

['BreitbartNews',
 'BreitbartNews',
 'BreitbartNews',
 'BreitbartNews',
 'BreitbartNews']

这不反映空的子列表。

任何人都可以帮助我如何改进我的代码以使其正确吗?

4

1 回答 1

2

您正在检查错误列表的长度。您的空列表在i变量中。

正确的代码是

y=[]
for i in x :
    if len(i) == 0:
        n = 'null'
    else:
        n = i[0]['screen_name']
    y.append(n)

它可能有助于print(i)在每次迭代中更好地了解实际发生的情况。

于 2021-03-10T07:10:51.410 回答