【发布时间】:2013-12-20 03:55:50
【问题描述】:
如果您有一长串 [['A',1,2],['B',3,4]] 格式的列表,并且您想将其合并到 ['A, 1, 2', 'B, 3, 4'] 中,是否有一种简单的列表理解方法可以做到这一点?
我是这样做的:
this_list = [['A',1,2],['B',3,4]]
final = list()
for x in this_list:
final.append(', '.join([str(x) for x in x]))
但这是否可以作为单行来完成?
感谢您的回答。我喜欢基于 map() 的。我有一个后续问题 - 如果子列表不是 ['A',0.111,0.123456] 格式,是否可以在列表理解中包含一个字符串格式化部分来截断,例如退出 'A, 0.1, 0.12'
再一次用我丑陋的代码,它会是这样的:
this_list = [['A',0.111,0.12345],['B',0.1,0.2]]
final = list()
for x in this_list:
x = '{}, {:.1f}, {:.2f}'.format(x[0], x[1], x[2])
final.append(x)
我解决了自己的问题:
values = ['{}, {:.2f}, {:.3f}'.format(c,i,f) for c,i,f in values]
【问题讨论】:
-
@mgilson 这不是一个平面列表。
-
@AshwiniChaudhary -- 我很困惑。 OP 有一个列表列表,并且想要一个平面列表。没有?
-
不,在他的例子中是 2 个字符串
-
哦,原来如此。好的,把脚从嘴里移开(手指?)