从另一个字典中删除字典(python 3中的奇怪行为)

西普里亚尼

我有两个字典

runde = {
    "A": ["1, 2, 3", "4, 5, 6"],
    "B": ["1, 2, 3", "4, 5, 6"],
    "C": ["1, 2, 3", "4, 5, 6"],
    "D": ["1, 2, 3", "4, 5, 6"],
}

bilete = {
    "B": ["1, 2, 3", "4, 5, 6"],
    "C": ["1, 2, 3", "4, 5, 6"],
}

我想从runde减去bilete,结果

runde = {
    "A": ["1, 2, 3", "4, 5, 6"],
    "B": [],
    "C": [],
    "D": ["1, 2, 3", "4, 5, 6"],
}

编码

for key in runde:
    if key in bilete:
        b = bilete[key]
        for a in b:
            runde[key].remove(a)

这段代码可以正常工作,但是在我的情况下,首先.remove之后,结果是

{'A': ['4, 5, 6'],'B': ['4, 5, 6'],'C': ['4, 5, 6'],'D': ['4, 5, 6']}

秒后。删除结果是

{'A': [],'B': [],'C': [],'D': []}

然后我得到错误ValueError:list.remove(x):x不在列表中

这是我的情况,任何帮助将不胜感激:

import pickle
# here is my variables saved: import.pkl
# https://drive.google.com/file/d/1SbJm9J5dFQgc1H6m8C6epqDLAs2m15lS/view?usp=sharing
with open('import.pkl', 'rb') as f:
    runde, bilete = pickle.load(f)
for key in runde:
    if key in bilete:
        b = bilete[key]
        for a in b:
            runde[key].remove(a)
夸兰纳

如果我输入以下代码:

runde = {
    "A": ["1, 2, 3", "4, 5, 6"],
    "B": ["1, 2, 3", "4, 5, 6"],
    "C": ["1, 2, 3", "4, 5, 6"],
    "D": ["1, 2, 3", "4, 5, 6"],
}

bilete = {
    "B": ["1, 2, 3", "4, 5, 6"],
    "C": ["1, 2, 3", "4, 5, 6"],
}

for key in runde:
    if key in bilete:
        b = bilete[key]
        for a in b:
            runde[key].remove(a)

print(runde)

我得到以下输出:

{'A': ['1, 2, 3', '4, 5, 6'], 'B': [], 'C': [], 'D': ['1, 2, 3', '4, 5, 6']}

我试图确切地猜测您拥有的数据,但是到目前为止,我还无法重现您的确切症状。

但是,如果我输入以下代码:

first = "1, 2, 3"
second = "4, 5, 6"
coll = [first, second]
runde = {
    "A": coll,
    "B": coll,
    "C": coll,
    "D": coll,
}

bilete = {
    "B": coll,
    "C": coll,
}

for key in runde:
    if key in bilete:
        b = bilete[key]
        for a in b:
            runde[key].remove(a)
            print(runde)

print(runde)

我得到以下输出:

{'A': [], 'B': [], 'C': [], 'D': []}

并没有错误。

另外,如果我在所有循环之前插入此代码:

import copy
for k in runde:
    runde[k] = copy.deepcopy(runde[k])

然后输出返回到所需的输出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何断言一个字典包含另一个字典,而在python中没有assertDictContainsSubset?

来自分类Dev

将字典的前2个最大键和值放在另一个字典中

来自分类Dev

如何在Python中从另一个字典复制唯一键和值

来自分类Dev

根据同一个字典中的另一个值python设置的值

来自分类Dev

使用键,一个字典中的值来获取python中另一个字典中的值

来自分类Dev

筛选字典中不在另一个字典中的值

来自分类Dev

从一个字典聚合值以在Python中填充另一个

来自分类Dev

在python 3的另一个字典中添加带有静态键的字典

来自分类Dev

如何根据python中另一个字典键的匹配来修改字典中的键值列表?

来自分类Dev

将字典中的值列表除以另一个字典中的值列表

来自分类Dev

如何从另一个字典中减去一个字典的值并将结果写入第三个字典?

来自分类Dev

如何映射键,在另一个字典中查找键?

来自分类Dev

在Perl的另一个字典中追加字典

来自分类Dev

如何在python上制作一个字典在另一个字典中以及在另一个字典中

来自分类Dev

如果另一个字典中存在项(键和值),则从它们中删除

来自分类Dev

如何检查字典是否在python中的另一个字典中

来自分类Dev

创建一个值与另一个字典中的键相同的字典

来自分类Dev

用函数中的另一个字典替换字典的内容-Python

来自分类Dev

运用字典中的元素来创建另一个字典

来自分类Dev

在Django模板的另一个字典中迭代一个键的字典

来自分类Dev

python,使用理解选择性地将值从一个字典弹出到另一个字典中

来自分类Dev

将两个字典值合并为一个,然后将其添加到Python中的另一个字典中

来自分类Dev

将包含列表的字典追加到python中的另一个字典

来自分类Dev

将一个字典中的值与 Python 中另一个字典中的值进行比较

来自分类Dev

在另一个字典中的字典中查找值

来自分类Dev

从另一个字典中删除重复值

来自分类Dev

将字典中的键复制到另一个字典

来自分类Dev

使用另一个字典列表中的键对字典列表进行排序

来自分类Dev

如何根据一个字典在 Python 中查询另一个字典的值来修改或创建字典

Related 相关文章

  1. 1

    如何断言一个字典包含另一个字典,而在python中没有assertDictContainsSubset?

  2. 2

    将字典的前2个最大键和值放在另一个字典中

  3. 3

    如何在Python中从另一个字典复制唯一键和值

  4. 4

    根据同一个字典中的另一个值python设置的值

  5. 5

    使用键,一个字典中的值来获取python中另一个字典中的值

  6. 6

    筛选字典中不在另一个字典中的值

  7. 7

    从一个字典聚合值以在Python中填充另一个

  8. 8

    在python 3的另一个字典中添加带有静态键的字典

  9. 9

    如何根据python中另一个字典键的匹配来修改字典中的键值列表?

  10. 10

    将字典中的值列表除以另一个字典中的值列表

  11. 11

    如何从另一个字典中减去一个字典的值并将结果写入第三个字典?

  12. 12

    如何映射键,在另一个字典中查找键?

  13. 13

    在Perl的另一个字典中追加字典

  14. 14

    如何在python上制作一个字典在另一个字典中以及在另一个字典中

  15. 15

    如果另一个字典中存在项(键和值),则从它们中删除

  16. 16

    如何检查字典是否在python中的另一个字典中

  17. 17

    创建一个值与另一个字典中的键相同的字典

  18. 18

    用函数中的另一个字典替换字典的内容-Python

  19. 19

    运用字典中的元素来创建另一个字典

  20. 20

    在Django模板的另一个字典中迭代一个键的字典

  21. 21

    python,使用理解选择性地将值从一个字典弹出到另一个字典中

  22. 22

    将两个字典值合并为一个,然后将其添加到Python中的另一个字典中

  23. 23

    将包含列表的字典追加到python中的另一个字典

  24. 24

    将一个字典中的值与 Python 中另一个字典中的值进行比较

  25. 25

    在另一个字典中的字典中查找值

  26. 26

    从另一个字典中删除重复值

  27. 27

    将字典中的键复制到另一个字典

  28. 28

    使用另一个字典列表中的键对字典列表进行排序

  29. 29

    如何根据一个字典在 Python 中查询另一个字典的值来修改或创建字典

热门标签

归档