我有一本字典:
{'dict': [['IE', '5', '-5'], ['UK', '3', '-9']]}
我希望弹出英国以外的列表值,因此在列表中取第一个值并进行比较,看它是否等于' UK'。
我目前有:
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']]}
答案 0 :(得分:1)
您可以使用列表推导基于第一个元素
过滤掉>>> data = {'dict': [['IE', '5', '-5'], ['UK', '3', '-9']]}
>>> {'dict': [i for i in data['dict'] if i[0] == 'UK']}
{'dict': [['UK', '3', '-9']]}
答案 1 :(得分:1)
您也可以使用filter
功能执行此操作:
d = {'dict': list(filter(lambda i: 'UK' in i, d['dict']))}
print(d)
输出:
{'dict': [['UK', '3', '-9']]}
答案 2 :(得分:0)
嵌套的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)
但强烈建议不要更改迭代期间迭代的列表