为什么我的字典没有在for循环中更新?

2024-05-15 05:19:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些不同的参数列表,如下所示:

list1 = [(CODE, ADDR ), (CODE1, ADDR1)]
list2 = [(CODE2, ADDR2 ), (CODE3, ADDR3)]
list3= [list1, list2]

我正在尝试从这个列表中获取参数,并根据这些参数更新我的字典。为此,我编写了以下代码:

for i in list3 :
    for idx,j in enumerate(i):
        if idx==0:
           start_code = j[0]
           start_addr = j[1]

        CODE = j[0]
        ADDR = j[1]
        mydict.update({ADDR:CODE})

,但我的问题是,我的字典mydict没有每次更新,而且没有显示任何更新。请问有什么问题?你知道吗


Tags: in列表for参数字典codestartmydict
1条回答
网友
1楼 · 发布于 2024-05-15 05:19:29

我同意Adam Smith指出dict.update()返回None(参见python docs)。你知道吗

例如,运行代码(但用字符串替换list1list2元素对象)会产生:

In [1]: list1 = [('CODE', 'ADDR' ), ('CODE1', 'ADDR1')]
   ...: list2 = [('CODE2', 'ADDR2' ), ('CODE3', 'ADDR3')]
   ...: list3= [list1, list2]
   ...: 

In [2]: mydict = {}

In [3]: for i in list3 :
    ...:     for idx,j in enumerate(i):
    ...:         if idx==0:
    ...:            start_code = j[0]
    ...:            start_addr = j[1]
    ...: 
    ...:         CODE = j[0]
    ...:         ADDR = j[1]
    ...:         mydict.update({ADDR:CODE})
    ...:         

In [4]: mydict
Out[4]: {'ADDR': 'CODE', 'ADDR1': 'CODE1', 'ADDR2': 'CODE2', 'ADDR3': 'CODE3'}

相关问题 更多 >

    热门问题