【问题标题】:Python Printing Dictionary Key and Value side by sidePython并排打印字典键和值
【发布时间】:2017-11-09 16:54:12
【问题描述】:

我想要一个为以下代码并排打印 Key 和 Value 的程序:

这是一本字典:

d = {'M': ['Name1', 'Name2', 'Name3'], 'F': ['Name1','Name2','Name3']}

我想要一个以下列形式打印的程序:

M, Name1
M, Name2
M, Name3
F, Name1
F, Name2
F, Name3     

【问题讨论】:

  • 你已经尝试了什么?
  • for k in d: print(k) for v in d[k]: print(v)

标签: python dictionary printing


【解决方案1】:
d = {'M': ['Name1', 'Name2', 'Name3'], 'F': ['Name1','Name2','Name3']} 

for key in d.keys():
    for value in d[key]:
        print key,value

编辑:

一个更优雅的解决方案可能是:

for key,value in d.iteritems():
    print key,value

【讨论】:

  • 更优雅的打印输出不一样。
【解决方案2】:

你可以试试这个:

d = {'M': ['Name1', 'Name2', 'Name3'], 'F': ['Name1','Name2','Name3']}
for a, b in d.items():
   for i in b:
       print("{}, {}".format(a, i))

输出:

M, Name1
M, Name2
M, Name3
F, Name1
F, Name2
F, Name3

【讨论】:

    【解决方案3】:

    您可以迭代 dict 键、值。

       for (key, values) in d.items():
            for value in values:
                print key, value
    

    我会将此代码用作工作,因为它非常清楚它的作用。

    如果您想使用 itertools 提高技能:

    form itertools import product
     for key, value in d.items():
         for (k, v) in product([key], value):
            print k,v
    

    您还可以使用键作为填充值来使用循环和 zip 函数或 zip_longest 函数。

    https://docs.python.org/3/tutorial/datastructures.html#nested-list-comprehensions 您也可以检查这一点并在列表理解中使用 print。

    其他链接: https://spapas.github.io/2016/04/27/python-nested-list-comprehensions/ https://lerner.co.il/2015/07/23/understanding-nested-list-comprehensions-in-python/

    【讨论】:

      【解决方案4】:
      d = {'M': ['Name1', 'Name2', 'Name3'], 'F': ['Name1','Name2','Name3']}
      
      for x in d:
          for y in d[x]:
              print(x+",",y)
      

      输出

      M, Name1
      M, Name2
      M, Name3
      F, Name1
      F, Name2
      F, Name3
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-29
        • 2021-08-14
        • 1970-01-01
        相关资源
        最近更新 更多