Python 如何根据条件替换列表中的多个元素?

Python 如何根据条件替换列表中的多个元素?,python,list,replace,Python,List,Replace,有一张单子 my_name_list = ['Sam', 'Bob', 'John'] 我想用值的位置替换它的值,如下所示: my_new_list = ['element_1', 'element_2', 'element_3'] 而且它不是固定的,可以有不同的数值。从1点到7点 我是这样开始的: 对于“我的名字”列表中的元素: element=element.replaceelement,“元素”+strlenmy\u名称\u列表 我的名称\u list.appendelement 但是

有一张单子

my_name_list = ['Sam', 'Bob', 'John']
我想用值的位置替换它的值,如下所示:

my_new_list = ['element_1', 'element_2', 'element_3']
而且它不是固定的,可以有不同的数值。从1点到7点

我是这样开始的:

对于“我的名字”列表中的元素: element=element.replaceelement,“元素”+strlenmy\u名称\u列表 我的名称\u list.appendelement 但是它返回我的新列表=['element\u 3','element\u 3','element\u 3']
您的尝试总是使用列表的长度作为数字:

'element_' + str(len(my_name_list))
这就是为什么输出中的所有元素都是元素3

事实上,除了长度之外,您实际上并不需要原始列表

my_name_list = ['Sam', 'Bob', 'John']
my_new_list = ['element_{}'.format(i) for i in range(1, len(my_name_list) + 1)]
# or
my_new_list = ['element_{}'.format(i + 1) for i in range(len(my_name_list))]
print(my_new_list)
输出

['element_1', 'element_2', 'element_3']

您的尝试总是使用列表的长度作为数字:

'element_' + str(len(my_name_list))
这就是为什么输出中的所有元素都是元素3

事实上,除了长度之外,您实际上并不需要原始列表

my_name_list = ['Sam', 'Bob', 'John']
my_new_list = ['element_{}'.format(i) for i in range(1, len(my_name_list) + 1)]
# or
my_new_list = ['element_{}'.format(i + 1) for i in range(len(my_name_list))]
print(my_new_list)
输出

['element_1', 'element_2', 'element_3']