串联列表和for循环

时间:2019-10-31 16:37:23

标签: python list for-loop nested concatenation

我想知道是否有一种简单的方法来做到这一点:

kwargs = {
    'element2':[2,3,4]
    'element3':[5,6,7]
}
myList = ["element1"] + \
         ["0 1"] + \
         for key,val in kwargs.items:
            [key] + \
            [' '.join([str(val) for val in vals])]

这显然会导致语法错误。 我有一个使用此方法的解决方法:

kwargs = {
    'element2':[2,3,4]
    'element3':[5,6,7]
}
myList = ["element1"] + \
         ["0 1"] + \
         [[key] + [' '.join([str(val) for val in vals])] for key,vals in kwargs.items()]

问题在于“ myList”将是一个嵌套列表,此后我需要对其进行展平... 知道我该如何使它简洁明了吗?

谢谢

2 个答案:

答案 0 :(得分:1)

如果您要保留类似的语法,则可以添加另一个列表理解,如下所示:

kwargs = {
    'element2':[2,3,4],
    'element3':[5,6,7]
}
myList = ["element1"] + \
         ["0 1"] + \
         [i for j in
         [[key] + [' '.join([str(val) for val in vals])] for key,vals in kwargs.items()]
         for i in j]

答案 1 :(得分:0)

您可以循环添加到列表中

myList = ["element1", "0 1"]
for key, vals in kwargs.items():
    myList.append(key)
    myList.append(" ".join(map(str, vals)))