【发布时间】:2021-08-09 05:30:36
【问题描述】:
如果我有:
alphabet = ['a', 'b', 'c', 'd', ...... ]
names = ['aaron', 'adrian', 'alan', 'brian', 'cathy', 'coby' .... ] #sorted by alphabet
我怎样才能让输出看起来像:
a - aaron, adian, alan,
b - brian,
c - cathy, coby, ....
.....
.....
我试过了:
for letter in alphabet:
print("")
for name in names:
if name[0] == letter:
print(letter, " - ", name, sep=' ', end=', ', flush=True)
但它没有工作。所以我想要一种方法来冻结“字母”,这样它就不会出现在每个名字旁边。
【问题讨论】:
-
“冻结”是什么意思
-
from itertools import groupby;然后运行for i, j in groupby(names, key = lambda x: x[0]):print(i,'-', *j) -
我不知道怎么问这个问题,但如果你检查输出你就会明白我的意思
-
x 这里是字母表?
-
没有。看看下面的答案
标签: python-3.x for-loop printing