更新Dictionary中的值,每个键有多个值

时间:2016-02-15 22:54:06

标签: python dictionary

我有一个包含多个16位数字键的字典,每个字符都分配了5个值,以便稍后以精美格式的列打印。我通过几个函数运行每个键,并希望在它发生时更新值,剩下的就像它们一样。

例如:

ccDict={"111111111111111111":("N/A", "N/A", "N/A", "N/A", "N/A")}

在运行功能后打印:

CardNumber                 Length   Prefix   SumDbleEvenPlace  SumOddPlace       Valid?    
11111111111111111111111        19       N/A      N/A               N/A               No 

我无法更新和更改特定值,但无法在线找到太多文档。有没有办法更新其中一个特定值,剩下的就是它们原样?转移t

我会好的

1 个答案:

答案 0 :(得分:2)

您应该为列表使用列表而不是元组。然后你可以这样做:

ccDict={"111111111111111111":["N/A", "N/A", "N/A", "N/A", "N/A"]}
ccDict['111111111111111111'][0] = "new value"
ccDict
{'111111111111111111': ['new value', 'N/A', 'N/A', 'N/A', 'N/A']}

如果你坚持使用元组,你可以这样做:

ccDict={"111111111111111111":("N/A", "N/A", "N/A", "N/A", "N/A")}
new_values = list(ccDict['111111111111111111'])
new_values[0] = "new value"
ccDict['111111111111111111'] = tuple(new_values)
ccDict['111111111111111111']
('new value', 'N/A', 'N/A', 'N/A', 'N/A')

由于听起来您在初始化ccDict值时遇到问题,您可以执行以下操作:

for k in my_list:
    ccDict[k] = [str(len(k)), "N/A", "N/A", "N/A", "No"]

如果my_list是您的cc值列表。