2024-04-27 00:33:37 发布
网友
我想做的是将列表中所有的偶数替换为0
list = [1,2,3,4,5]将是list = [1,0,3,0,5]
list = [1,2,3,4,5]
list = [1,0,3,0,5]
我想过这样做
list = [1,2,3,4,5] for i in list: if i % 2 == 0: # then replace the even numbers with 0
问题是我不知道如何编写下一行代码
您可以使用如下列表理解来完成此操作:
list = [x * (x%2) for x in list] print list
请注意,x%2只能产生1或0。因此,如果这个数是偶数,那么乘法的结果是0;如果是奇数,那么它就是这个数本身。在
Demo
>>> my_list = [1,2,3,4,5] >>> def myfun(x): if x % 2 != 0: return x else: return 0 >>> list(map(myfun, my_list)) [1, 0, 3, 0, 5]
问题是如果你这样开始
for i in lst: if i %2 == 0: # don't know the index of i
但是,您可以使用enumerate来跟踪索引-现在很容易了
enumerate
通常使用列表理解并用新的列表替换整个列表会更简单。在
您可以使用按位和&测试每个数字的最低位
&
>>> L = [1, 2, 3, 4, 5] >>> L = [x if x & 1 else 0 for x in L] >>> L [1, 0, 3, 0, 5]
根据您的CPU和Python实现,您可能会发现这更快(但在我看来可读性较差):
[x * (x & 1) for x in L]
您可以使用如下列表理解来完成此操作:
请注意,x%2只能产生1或0。因此,如果这个数是偶数,那么乘法的结果是0;如果是奇数,那么它就是这个数本身。在
Demo
问题是如果你这样开始
但是,您可以使用
^{pr2}$enumerate
来跟踪索引-现在很容易了通常使用列表理解并用新的列表替换整个列表会更简单。在
您可以使用按位和
&
测试每个数字的最低位根据您的CPU和Python实现,您可能会发现这更快(但在我看来可读性较差):
相关问题 更多 >
编程相关推荐