[英]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.