首页 > 解决方案 > 在二维数组列表(字典)中分配新值

问题描述

我正在尝试在我的字典的二维列表中分配新值。这是我的代码:

DictUP_Days = {'2': [('None', 'Friday'), ('Any', 'Saturday'), ('Any', 'Sunday')]}
S = ['E', 'L', 'D', 'N']
NewDict = {}

for key, value in DictUP_Days.items():
    for shift, days in value:
            if shift == 'None':
                newDict[key] = '',days
            elif shift == 'Any':
                newDict[key] = S,days

如果我打印出我的,newDict我会得到:{'2': (['E', 'L', 'D', 'N'], 'Sunday')}。该程序仅保留我列表中的最后一项(星期日)。

预期的输出应如下所示:{'2': ('', 'Friday'),(['E', 'L', 'D', 'N'], 'Saturday'),(['E', 'L', 'D', 'N'], 'Sunday')}. 你能告诉我我的错误在哪里吗?谢谢

标签: pythonlistdictionary

解决方案


如果您可以就地更新您的字典:

DictUP_Days = {'2': [('None', 'Friday'), ('Any', 'Saturday'), ('Any', 'Sunday')]}
S = ['E', 'L', 'D', 'N']
for key, value in DictUP_Days.items():
    for index, (shift, days) in enumerate(value):
            if shift == 'None':
                value[index] = '',days
            elif shift == 'Any':
                value[index] = S,days

print(DictUP_Days)

上述输出:

{'2': [('', 'Friday'), (['E', 'L', 'D', 'N'], 'Saturday'), (['E', 'L', 'D', 'N'], 'Sunday')]}

推荐阅读