Python создать новый список, успешно повторяя существующие строковые элементы - PullRequest
3 голосов
/ 28 апреля 2020

У меня есть список. Я хочу повторить элементы, добавив общее для каждого из них.

main_list = ['lst1','lst2','lst3']  # existing list

new_list = ['lst1_mean','lst1_std','lst2_mean','lst2_std','lst3_mean','lst3_std']  # expected list

Мой код:

aux_list1 = [i+'_mean' for i in main_list]
aux_list2 = [i+'_std' for i in main_list]
new_list = [i,j for i,j in zip(aux_list1,aux_list2)]

Есть ли лучший способ сделать это?

1 Ответ

3 голосов
/ 28 апреля 2020

Вы можете просто использовать вложенный l oop:

main_list = ['lst1', 'lst2', 'lst3']
suffixes = ['_mean', '_std']

new_list = [w + s for w in main_list for s in suffixes]

print(new_list)

Выход:

['lst1_mean', 'lst1_std', 'lst2_mean', 'lst2_std', 'lst3_mean', 'lst3_std']

Вы также можете использовать itertools.product (который имеет концепцию переменного глубокая вложенность l oop):

from itertools import product

main_list = ['lst1', 'lst2', 'lst3']
suffixes = ['_mean', '_std']

new_list = [''.join(w) for w in product(main_list, suffixes)]

print(new_list)

Выход:

['lst1_mean', 'lst1_std', 'lst2_mean', 'lst2_std', 'lst3_mean', 'lst3_std']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...