用列表替换字典值

时间:2018-11-03 05:34:04

标签: python list dictionary iteration

对于给定的字典,一个unified_key和一个列表(假定列表将始终具有text-1元素),最简单的方法是替换字典ro中除列表ro中的Unified_key('a')以外的所有值。

text = {'a': [1, 1, 0, 0, 0, 0], 'b': [0, 1, 0, 0, 1, 0], 'c': [1, 0, 0, 1, 0, 1], 'd': [1, 1, 1, 0, 0, 1]}
unchanged_key = 'a'
ro = [[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 1, 0], [1, 0, 0, 0, 0, 0]]

输出:

text = {'a': [1, 1, 0, 0, 0, 0], 'b': [1, 0, 1, 0, 1, 1], 'c': [1, 0, 0, 0, 1, 0], 'd': [1, 0, 0, 0, 0, 0]}

1 个答案:

答案 0 :(得分:0)

我假设您希望替换的顺序与列表“ ro”中的顺序相同。但是,如果键“ a”位于字典“文本”的中间,则可能会产生问题。 您可以执行以下操作,该操作可以解决:

text = {'a': [1, 1, 0, 0, 0, 0], 'b': [0, 1, 0, 0, 1, 0], 'c': [1, 0, 0, 1, 0, 1], 'd': [1, 1, 1, 0, 0, 1]}
unchanged_key = 'a'
ro = [[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 1, 0], [1, 0, 0, 0, 0, 1]]
ind=-1
for k,v in text.items():    #iterating thru dictionary 'text'  
    if k==unchanged_key:
        pass
    else:
        ind=ind+1
        text[k]=ro[ind]    #repl;acing the values from ro
  

输出:(“文本”字典)
  {'a':[1,1,0,0,0,0],'b':[1,0,1,0,   1,1],'c':[1,0,0,0,1,0],'d':[1,0,0,0,0,1]}