Python 在dict中可能吗?-创建一个dict并按增量添加每个键
我试图从另一个dict中的dict中获取一些选择性值Python 在dict中可能吗?-创建一个dict并按增量添加每个键,python,dictionary,key-value,Python,Dictionary,Key Value,我试图从另一个dict中的dict中获取一些选择性值 new_list = {} for x in name_list: y =name_list[x] num =0 for key, value in y.items(): if value == 'a_given_string_from_key': print(name_list[x]) num= num+1 new_list
new_list = {}
for x in name_list:
y =name_list[x]
num =0
for key, value in y.items():
if value == 'a_given_string_from_key':
print(name_list[x])
num= num+1
new_list.update(num ,name_list[x])
但这似乎是不可能的。如何解决这个问题
输入:
name_list = {
1 : {'_name' :'gilchrist','Team_name' : 'australia'},
2 : {'_name' :'dhoni','Team_name' : 'india'},
3 : {'_name' :'prior','Team_name' : 'england'},
4 : {'_name' :'rishab','Team_name' : 'india'},
5 : {'_name' :'rahul','Team_name' : 'india'}
}
预期输出:
new_list = {
1 : {'_name' :'dhoni','Team_name' : 'india'},
2 : {'_name' :'rishab','Team_name' : 'india'},
3 : {'_name' :'rahul','Team_name' : 'india'}
}
我需要那些新的\u列表
键,如果你只是更换
new_list.update(num ,name_list[x])
借
这似乎是你想要的
update
方法可用于通过从另一个词典中获取一个词典中的多个条目,从而一次更改该词典中的多个条目
但您只需要在字典中一次插入一项
名称
new\u list
以及您希望使用递增整数作为键的事实表明,您实际上希望new\u list
是一个列表,而不是一个字典。您可以将代码更改为:
new_list = []
for y in name_list.values():
for value in y.values():
if value == 'a_given_string_from_key':
new_list.append(y)
break
结果应该是这样的
new_list = [
{'_name' :'dhoni','Team_name' : 'india'},
{'_name' :'rishab','Team_name' : 'india'},
{'_name' :'rahul','Team_name' : 'india'}
]
# new_list[0] --> {'_name' :'dhoni','Team_name' : 'india'}
# new_list[1] --> {'_name' :'rishab','Team_name' : 'india'}
# etc.
我还做了其他一些小的改进,我会留给你去解决。你能更新你的问题并在那里添加示例输入和预期输出吗?@AndrejKesely。你现在可以检查它了。你把你的变量命名为
新列表
,但把它变成了字典。看起来你真的想要一个列表,为什么不直接用列表来代替呢?@mkrieger1我只想要一个dict中的值。这是我的错误…我现在编辑了..检查一下..你刚刚删除了变量定义,所以现在问题中的代码甚至不再运行了。但是,你为什么不使用列表而不是字典呢?列表通过按定义递增整数来编制索引。
new_list = [
{'_name' :'dhoni','Team_name' : 'india'},
{'_name' :'rishab','Team_name' : 'india'},
{'_name' :'rahul','Team_name' : 'india'}
]
# new_list[0] --> {'_name' :'dhoni','Team_name' : 'india'}
# new_list[1] --> {'_name' :'rishab','Team_name' : 'india'}
# etc.