Python流行字典列表值
我有一本字典:Python流行字典列表值,python,dictionary,Python,Dictionary,我有一本字典: {'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': [['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”的值后看起来像这样
您可以使用列表理解根据第一个元素进行筛选
>>> data = {'dict': [['IE', '5', '-5'], ['UK', '3', '-9']]}
>>> {'dict': [i for i in data['dict'] if i[0] == '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']]}
嵌套的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)
但是强烈建议不要在迭代过程中更改正在迭代的列表嵌套的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)
但是强烈建议不要在迭代过程中更改正在迭代的列表您也可以使用
过滤器
功能:
d = {'dict': list(filter(lambda i: 'UK' in i, d['dict']))}
print(d)
输出:
{'dict': [['UK', '3', '-9']]}
您也可以使用
过滤器功能执行此操作:
d = {'dict': list(filter(lambda i: 'UK' in i, d['dict']))}
print(d)
输出:
{'dict': [['UK', '3', '-9']]}
有没有一种方法可以用我的方式而不是列表理解?有没有一种方法可以用我的方式而不是列表理解?为什么不采取第二种方法,检查为什么不采取第二种方法,检查