Создайте список строк, комбинируя списки и строки - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь создать список, который объединяет два списка и несколько строк:

string = "test"
list1 = ["1","2","3"]
list2 = ["a","b","c"]

result = ["test.1.a","test.2.b","test.3.b"]

Я пытался возиться с функциями .join и zip, но безрезультатно.

Ответы [ 5 ]

0 голосов
/ 03 июля 2018

Понимание списка:

string = "test"
list(map(lambda x,y: string+"."+x+"."+y, list1,list2))

Выход:

['test.1.a', 'test.2.b', 'test.3.c']
0 голосов
/ 03 июля 2018
string = "test"
list1 = ["1","2","3"]
list2 = ["a","b","c"]

lst = ['{}.{}.{}'.format(string, list1[x], list2[x]) for x in range(len(list1))]

print(lst)

выход

['test.1.a', 'test.2.b', 'test.3.c']
0 голосов
/ 03 июля 2018

Я считаю , что питонский путь может быть следующим, используя zip и list comprehension:

output = ["%s.%s.%s" % (string, a, b) for a, b in zip(list1, list2)]
0 голосов
/ 03 июля 2018

Это работает:

['.'.join((string,)+i) for i in zip(list1, list2)]

Выход:

['test.1.a', 'test.2.b', 'test.3.c']
0 голосов
/ 03 июля 2018

Просто используйте concatenation трюк:

string1 = "test"
list1 = ["1","2","3"]
list2 = ["a","b","c"]

result = [(string1+"."+list1[i]+"."+list2[i]) for i in range(len(list1))]
print(result)

Выход:

['test.1.a', 'test.2.b', 'test.3.c']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...