2024-04-18 09:13:49 发布
网友
我必须搜索一个列表并用另一个元素替换所有出现的元素。到目前为止,我在代码方面的尝试都没有给我带来任何好处,什么是最好的方法?
例如,假设我的列表有以下整数
>>> a = [1,2,3,4,5,1,2,3,4,5,1]
我需要用值10替换所有出现的数字1,所以我需要的输出是
>>> a = [10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]
因此,我的目标是用数字10替换数字1的所有实例。
列表理解工作得很好,使用枚举循环可以节省一些内存(b/c操作基本上是就地完成的)。
还有函数式编程。参见map的用法:
>>> a = [1,2,3,2,3,4,3,5,6,6,5,4,5,4,3,4,3,2,1] >>> map(lambda x: x if x != 4 else 'sss', a) [1, 2, 3, 2, 3, 'sss', 3, 5, 6, 6, 5, 'sss', 5, 'sss', 3, 'sss', 3, 2, 1]
>>> a= [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1] >>> for n, i in enumerate(a): ... if i == 1: ... a[n] = 10 ... >>> a [10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]
尝试使用list comprehension和ternary operator。
>>> a=[1,2,3,1,3,2,1,1] >>> [4 if x==1 else x for x in a] [4, 2, 3, 4, 3, 2, 4, 4]
列表理解工作得很好,使用枚举循环可以节省一些内存(b/c操作基本上是就地完成的)。
还有函数式编程。参见map的用法:
尝试使用list comprehension和ternary operator。
相关问题 更多 >
编程相关推荐