在python中组合列表(类似于string.join,但作为列表理解?)

在python中组合列表(类似于string.join,但作为列表理解?),python,list,Python,List,如果您有一个格式为[[['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',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]
您可以使用嵌套的
str.join

>>> lst = [['A',1,2],['B',3,4]]
>>> [", ".join([str(y) for y in x]) for x in lst]
['A, 1, 2', 'B, 3, 4']
>>>
返回

['A, 1, 2', 'B, 3, 4', 'A, 0.111, 0.123456']
['A, 1, 2', 'B, 3, 4', 'A, 0.11, 0.12']

@米吉尔森:这不是一个简单的清单。@AshwiniChaudhary——我很困惑。OP有一个列表,需要一个简单的列表。不?不,在他的例子中是两个字符串哦,是的。好的,把脚从嘴里移开(手指?)@alko实际上是为了推荐它们。但是对于小的列表,是的,它们可以被删除。@alko-Yea。这是我自己刚刚找到的一个话题。我不知道join,谢谢,@AshwiniChaudhary和@iCodez的那种2次传球行为!
li = [['A',1,2],['B',3,4],['A',0.111,0.123456]]

print    [', '.join(map(str,sli)) for sli in li]


def func(x):
    try:
        return str(int(str(x)))
    except:
        try:
            return '%.2f' % float(str(x))
        except:
            return str(x)

print map(lambda subli: ', '.join(map(func,subli)) , li)
['A, 1, 2', 'B, 3, 4', 'A, 0.111, 0.123456']
['A, 1, 2', 'B, 3, 4', 'A, 0.11, 0.12']