繁体   English   中英

在python数组的条件索引中使用逻辑“或”

[英]Using the logical “or” in conditional indexing in python arrays

我想更改数组中某些元素的值。 例如,我想的是具有值的所有元素123至所有被映射到值1

如何将“或”运算符用于此目的? 或任何会做我想要的操作员。 我已经尝试了下面的代码以及其他一些不同的东西,但是它们都没有提供我想要的东西:

samples = [1,2,3,4,5,6,7,8]
print samples
samples[samples == 1 or samples == 2 or samples == 3] = 1
print samples

我需要的输出是:

[1,1,1,4,5,6,7,8]

使用列表推导来生成新列表:

samples = [1 if i in (1, 2, 3) else i for i in samples]

这使用条件表达式1或原始值之间进行选择。

使用or ;的示例 这并不比公认的答案更好,除非您正在打代码高尔夫:)

samples = [int(i in (1, 2, 3)) or i for i in samples]

这利用了int(True)返回1的事实。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM