Объединенный список и цикл - PullRequest
0 голосов
/ 31 октября 2019

Мне было интересно, есть ли простой способ сделать это:

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 ]

1 голос
/ 31 октября 2019

Если вы хотите сохранить подобный синтаксис, вы можете добавить другое понимание списка, например:

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]
0 голосов
/ 31 октября 2019

Вы можете добавить в список в цикле

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