我的问题是一个分为两部分的问题。
如果您有列表
numbers = [10, 20, 30, 100]
,您希望通过向每个元素添加10来编辑列表中的每个元素。我将如何去做呢?并且您能够执行此操作而无需创建单独的列表?
类似地,如果给您一个列表,例如:
words = ['hello', 'hey', 'hi']
并希望将列表中的每个字母h都更改为另一个字母'r',这与上一个算法相似吗?
答案 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]