为一个列表在单独的行上一行打印5个项目?

2024-10-04 01:28:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张未知数量的物品清单,比如说26件。 比如说

list=['a','b','c','d','e','f','g','h',
'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

如何这样打印:

abcde

fghij

klmno

pqrst

uvwxy

z

是吗? 非常感谢你。 尝试:

    start = 0
    for item in list:
        if start < 5:
            thefile.write("%s" % item)
            start = start + 5
        else:
            thefile.write("%s" % item)
            start = 0

Tags: infor数量ifitem物品startlist
3条回答

它需要调用for-loop,而join函数可以解决这个问题。

l=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

for i in range(len(l)/5+1):
    print "".join(l[i*5:(i+1)*5]) + "\n"

演示:

abcde

fghij

klmno

pqrst

uvwxy

z
for i, a in enumerate(A):
    print a, 
    if i % 5 == 4: 
        print "\n"

另一种选择是,打印后的逗号表示没有换行符

您可以通过列表理解来简单地做到这一点:"\n".join(["".join(lst[i:i+5]) for i in xrange(0,len(lst),5)])这里的^{}将给出一个整数列表,这些整数在距离5处等距分布,然后我们使用list slicing将给定列表分割成每个长度为5的小块。

然后^{}方法按照名字的意思来做,它通过放置给定的字符来连接列表元素并返回一个字符串。

lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

print "\n".join(["".join(lst[i:i+5]) for i in xrange(0,len(lst),5)])

>>> abcde
    fghij
    klmno
    pqrst
    uvwxy
    z

相关问题 更多 >