如何修改列表元素?

2024-09-30 16:19:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个python列表:

name = ['Beijing']
alphabet = ['a', 'b', 'c']

我需要将字母表中的每个元素添加到名称中的元素,以便输出为:

new_name = ['Beijinga', 'Beijingb', 'Beijingc']

有人能帮我吗


Tags: name名称元素列表new字母表alphabetbeijing
3条回答

您可以在下面的示例中进行尝试

import string
name = 'Beijing'
new_nam = [name + item for item in string.ascii_lowercase]

输出:

['Beijinga', 'Beijingb', 'Beijingc', 'Beijingd', 'Beijinge', 'Beijingf', 'Beijingg', 'Beijingh', 'Beijingi', 'Beijingj', 'Beijingk', 'Beijingl', 'Beijingm', 'Beijingn', 'Beijingo', 'Beijingp', 'Beijingq', 'Beijingr', 'Beijings', 'Beijingt', 'Beijingu', 'Beijingv', 'Beijingw', 'Beijingx', 'Beijingy', 'Beijingz']

在您的示例中,您只有一个名称。 假设您将拥有多个名称,我有一个解决方案(它也适用于单个名称)—

name = ['Beijing','QWERTY']
alphabet = ['a', 'b', 'c']

new_lst = []
for j in name:
    for i in alphabet:
        new_lst.append(j+i)

结果

['Beijinga', 'Beijingb', 'Beijingc', 'QWERTYa', 'QWERTYb', 'QWERTYc']

或者,您可以使用更好、更简单的list comprehension-

new_lst = [j+i for j in name for i in alphabet]
print(new_lst)

如果您有两个任意大小的列表,可以使用itertools.product()非常轻松地执行此操作:

>>> import itertools
>>> name = ['Beijing']
>>> alphabet = ['a', 'b', 'c']
>>> new_name = list(map(''.join, itertools.product(name, alphabet)))
>>> new_name
['Beijinga', 'Beijingb', 'Beijingc']

相关问题 更多 >