gpt4 book ai didi

python - 如何拆分并转换为字典并交换键值

转载 作者:行者123 更新时间:2023-12-03 20:23:30 24 4
gpt4 key购买 nike

我有 list ["Germany + A", "France + A", "England + B", "Germany + A" ]

  • 我需要转换字典
  • 我需要除以 +
  • 转换为字典并交换值
  • 如果存在这些值,则无需处理

  • 预期是字典 {"A":["Germany", "France"],"B":["England"] }代码如下,我只得到字典的输出,需要插入一个条件 if the values are present then no need to process
    l = ["Germany + A", "France + A",  "England + B", "Germany + A"  ]
    m = []
    for i in l:
    m.append(i.split('+'))
    for k,v in m:
    n ={k:v}
    print({v: k for k, v in n.items()}

    最佳答案

    我认为在这里选择可读的解决方案是最好的。
    循环遍历列表 l ,然后在 ' + ' 上进行拆分.
    然后,在第一次遇到国家名称时将它们附加到相应的键。
    注意collections.defaultdict的使用将字典初始化为列表的字典。

    import collections

    l = ["Germany + A", "France + A", "England + B", "Germany + A"]

    d = collections.defaultdict(list)

    for i in l:
    k, v = i.split(' + ')
    if k not in d[v]:
    d[v].append(k)

    print(dict(d))
    这给出了输出:
    {'A': ['Germany', 'France'], 'B': ['England']}
    如果你想坚持你原来的方法,你可以再次使用 ' + ' 拆分,并使用列表推导将结果放入列表中:
    m = [i.split(' + ') for i in l]
    然后,您将遍历 m像这样:
    for k, v in m:
    if k not in d[v]:
    d[v].append(k)
    如果您想要中间 m,这很有用列表。

    关于python - 如何拆分并转换为字典并交换键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65979168/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com