繁体   English   中英

Python流行字典列表值

[英]Python pop dictionary list values

我有一本字典:

{'dict': [['IE', '5', '-5'], ['UK', '3', '-9']]}

我希望弹出英国以外的列表值,因此取列表中的第一个值并进行比较以查看它是否等于“英国”。

我目前有:

for k,v in insideUK.items():
    for i in v:
            if i[0] == "UK":
                print(x) 
            else:
                k.pop(v)

我知道其他地方都错了,但需要帮助!

我希望dict看起来像这样,一旦弹出不等于“ UK”的值。

{'dict': [['UK', '3', '-9']]}

您可以使用列表推导根据第一个元素进行过滤

>>> data = {'dict': [['IE', '5', '-5'], ['UK', '3', '-9']]}
>>> {'dict': [i for i in data['dict'] if i[0] == 'UK']}
{'dict': [['UK', '3', '-9']]}

您也可以使用filter功能:

d = {'dict': list(filter(lambda i: 'UK' in i, d['dict']))}
print(d)

输出:

{'dict': [['UK', '3', '-9']]}

嵌套的dict和list表达式可以做到这一点:

{k: [i for i in v if i[0] == 'UK'] for k,v in insideUK.items()}

如果您确实想使用for循环并就地更改列表,则可以执行以下操作:

for k,v in insideUK.items():
    for i in v:
            if i[0] == "UK":
                print(x) 
            else:
                v.remove(i)

但是强烈建议不要在迭代过程中更改要迭代的列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM