Python 在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

我试图从另一个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.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.