【问题标题】:Updating List In Dictionary Adds To List in Every Key Python3更新字典中的列表添加到每个键 Python3 中的列表
【发布时间】:2019-12-18 16:23:49
【问题描述】:

所以下面的代码,有点粗糙,但我已经尝试调试了一段时间。

所以本质上 lolbinsbehaviouralshellcommands 是一个列表的字典,预先填充了许多键。

代码遍历,当它找到匹配项时,它应该将该值附加到位于 lolbinsbehaviouralshellcommands[behaviourshellcommandlolbin] 的列表中的字典内的列表中

实际发生的情况是它更新了字典中所有键的所有列表,我终其一生都无法弄清楚原因。请告诉我如何仅更新 lolbinsbehaviouralshellcommands 列表字典中的 lolbinsbehaviouralshellcommands[behaviourshellcommandlolbin] 列表。

    lolbinsbehaviouralshellcommandsclone = copy.deepcopy(lolbinsbehaviouralshellcommands)
                    for behaviourshellcommandlolbin in lolbinsbehaviouralshellcommandsclone:

                        #print(key)
                        #print("doggo")
                        if behaviourshellcommandlolbin in lowercaserawshell:
                            print("it's a match")
                            print(behaviourshellcommandlolbin)
                            print(lowercaserawshell)
                            #exit()
                            #if rawshell not in lolbinsbehaviouralshellcommands[behaviourshellcommandlolbin]:
                            print(type(lolbinsbehaviouralshellcommands[behaviourshellcommandlolbin]))
                            print(len(lolbinsbehaviouralshellcommands[behaviourshellcommandlolbin]))
                            #exit()
                            if len(lolbinsbehaviouralshellcommands[behaviourshellcommandlolbin]) == 0:
                                print(lolbinsbehaviouralshellcommands[behaviourshellcommandlolbin])
                                print(lolbinsbehaviouralshellcommands)

    #                           exit()
                                lolbinsbehaviouralshellcommands[behaviourshellcommandlolbin].append(str(rawshell))
                                print(lolbinsbehaviouralshellcommands)
                                print(behaviourshellcommandlolbin)
                                exit()

【问题讨论】:

  • 你试过extend吗?
  • 仍然将它添加到字典的每个元素中,如果我使用extend,只需像这样拆分它:: ['(', 'o', 'p', 'e', 'n', ' )'、''、'c'、'm'、'd'、'.'、'e'、'x'、'e'、'/'、'c'、''、'p'、' i','n','g','','1','2','7','.','0','.','0','.','1', ''、'&'、''、'd'、'e'、'l'、''、'/'、'q'、''、'C'、':'、'\\'、' 5'、'5'、'4'、'8'、'd'、'5'、'9'、'1'、'6'、'4'、'6'、'1'、'9' , 'c', 'f', '9', '3', 'f', '6', '0', '0', '4',)', ']'],

标签: python-3.x list dictionary for-loop append


【解决方案1】:

问题是我如何实例化列表字典。

如果您以第一种方式创建列表,则意味着所有键都引用单个列表。

lolbaslistdict = dict.fromkeys(lowercaselolbas, [])

第二种方法为每个字典键创建一个单独的列表。

lolbaslistdict = {k: [] for k in lowercaselolbas}

【讨论】:

    猜你喜欢
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2020-02-28
    相关资源
    最近更新 更多