繁体   English   中英

从数字列表格式化字符串

[英]Formatting a string from a list of numbers

我有一个整数列表l = [1,2,3,4,5,6] ,我想以格式化的方式打印它们:

[1,2] [3,4] [5,6]

我怎样才能以简单的方式得到这个结果? 我试过使用:

print("[%d, %d] [%d, %d] [%d, %d]" % l) 

但它没有用,因为l不是一个数字。 任何关于如何实现这种效果的指针将不胜感激。

我知道我可以使用

  print("[", l[0], "," ,1[1] ...

但那是一种丑陋且低效的代码编写方式,并希望有更好的方式。

您可以通过从列表创建迭代器并将迭代器与自身一起压缩来将列表项成对分组:

i = iter(l)
print(*map(list, zip(i, i)))

这输出:

[1, 2] [3, 4] [5, 6]

如果元素数量是固定的,我们可以试试这个:

lst = [1, 2, 3, 4, 5, 6]
print('[{}, {}] [{}, {}] [{}, {}]'.format(*lst))

=> '[1, 2] [3, 4] [5, 6]'
l = [1,2,3,4,5,6]
print(*map(list, zip(l[::2], l[1::2])))

印刷:

[1, 2] [3, 4] [5, 6]

这个怎么样?

l = [1,2,3,4,5,6]
evens = [i for i in l if i % 2 == 0]
odds = [i for i in l if i % 2 != 0]

zip(evens, odds)

或这个

l = [1,2,3,4,5,6,7,8]

print( *[ (l[2*i], l[2*i+1] ) for i in range(0,len(l)//2)])

产生[1, 2] [3, 4] [5, 6]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM