在python 3中编辑列表的元素

时间:2018-08-06 21:10:07

标签: python-3.x list

我的问题是一个分为两部分的问题。

如果您有列表

numbers = [10, 20, 30, 100]

,您希望通过向每个元素添加10来编辑列表中的每个元素。我将如何去做呢?并且您能够执行此操作而无需创建单独的列表?

类似地,如果给您一个列表,例如:

words = ['hello', 'hey', 'hi'] 

并希望将列表中的每个字母h都更改为另一个字母'r',这与上一个算法相似吗?

2 个答案:

答案 0 :(得分:3)

因为您说过不想创建新列表,所以不能使用@gcandal建议的列表理解或映射功能。您可以试试看。

def update_list(l, fn):
    for i in range(len(l)):
        l[i] = fn(l[i])

update_list(numbers, lambda a: a + 10)
update_list(words, lambda s: s.replace('h', 'r'))

答案 1 :(得分:0)

您可以通过应用map来做到这一点:

numbers_plus_ten = map(lambda number: number + 10, numbers)

或使用列表理解:

numbers_plus_ten = [number + 10 for number in numbers]