【问题标题】:Concatenate dictionaries using values in different dictionaries使用不同字典中的值连接字典
【发布时间】:2017-04-15 05:24:40
【问题描述】:

我有两本词典。像这样:

d1 = {A: 1, B:2, C:3}
d2 = {1: xx, 2:xxx, 3:xxxx}

我写了一个代码来比较两者:

for k, v in d1.iteritems():
    for l, m in d2.iteritems():
        if l == v:
            print k+'\t'+v+'\t'+m

然后打印成这样的表格:

A 1 xx
B 2 xxx
C 3 xxxx

接受创建新字典之类的建议。

【问题讨论】:

  • 我忘了说 d2 的元素比 d1 多。

标签: python dictionary merge concatenation


【解决方案1】:
for k, v in d1.iteritems():
    if v in d2:
        print('{}\t{}\t{}'.format(k, v, d2[v]))

【讨论】:

  • 它产生了冲突,因为 d2 的元素比 d1 多。我不想要 d2 中的超出元素。你能帮帮我吗?
【解决方案2】:

“接受创建新字典的建议。”

print {key : [d1[key], d2[d1[key]]] for key in d1 if  d1[key] in d2 }

【讨论】:

    【解决方案3】:
    for k, v in d1.items():
        print(k, v, d2[v])
    

    这是在 Python 3 中的做法。

    【讨论】:

      【解决方案4】:

      试试这个:简单易行。

      for i in d1:
          if d1[i] in d2:
              print i,d1[i],d2[d1[i]]  
      

      【讨论】:

      • 它显示了一个错误。可能是因为两个字典中的元素数量不同。
      猜你喜欢
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多