【问题标题】:Using the logical "or" in conditional indexing in python arrays在 python 数组的条件索引中使用逻辑“或”
【发布时间】:2014-08-23 13:56:20
【问题描述】:

我想更改数组中某些元素的值。 例如,我希望所有具有值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]

【问题讨论】:

    标签: python list indexing conditional


    【解决方案1】:

    使用list comprehension 生成新列表:

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

    这使用conditional expression1 或原始值之间进行选择。

    【讨论】:

      【解决方案2】:

      一个使用or的例子;这并不比公认的答案好,除非你在打代码高尔夫:)

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多