Python pop字典列表值

时间:2018-03-19 15:50:03

标签: python dictionary pop

我有一本字典:

{'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']]}

3 个答案:

答案 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)

但强烈建议不要更改迭代期间迭代的列表