字典中有可能吗?-创建一个字典并按增量添加每个键

Is it possible in a dict?- creating a dict and adding each key by increment

我正在尝试从另一个字典中的一个字典中获取一些选择性值。

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

我逐渐需要那些 new_list 键。

如果你只是更换

new_list.update(num ,name_list[x])

来自

new_list[num] = name_list[x]

这似乎符合您的要求。

update 方法可用于一次更改字典中的多个项目,方法是从另一个字典中取出它们。

但您只想一次将一项插入字典。


名称 new_list 以及您想使用递增整数作为键的事实表明您实际上希望 new_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.

我还做了一些其他的小改进,留给你去解决。