在python中按组打印列表项

我还是 Python 的新手。我有与以下列表类似的列表:

items = [[4, 'A'], [4, 'B'], [5, 'C'], [5, 'D'], [5, 'E'], [6, 'F'], [6, 'G']]

我试图通过将第一个项目组合在一起来打印它并得到如下内容:

4 : ['A', 'B']
5 : ['C', 'D', 'E']
6 : ['F', 'G']
4 : ['A', 'B']
5 : ['C', 'D', 'E']
6 : ['F', 'G']

我该怎么做呢?

回答

output = {}

items = [[4, 'A'], [4, 'B'], [5, 'C'], [5, 'D'], [5, 'E'], [6, 'F'], [6, 'G']]

for number, letter in items:
    if number not in output:
        output[number] = []
    output[number].append(letter)


print('n'.join(f'{number} : {letters}' for number, letters in output.items()))

输出

解释

  • 我使用名称items而不是list为了不与 stdlib 冲突list
  • 我将数字和字母解包为两个变量,同时循环遍历这些项目。
  • 对于每个项目,我检查它是否已作为键存在于输出中。如果没有,我实例化一个空列表。*
  • 我将这封信附加到相应的列表中。

* 我建议使用collections.defaultdict它来简化您的代码。


以上是在python中按组打印列表项的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>