【问题标题】:How do I add an integer to just some numbers in a list?如何将整数添加到列表中的某些数字?
【发布时间】:2019-07-04 05:59:06
【问题描述】:

我有一个列表,我想为列表中的每个值添加一个整数,超过第五个值。

PageNumbers = [30, 50, 80, 120, 160, 200, 240, 280]
PageNumbers = [x+100 for x in PageNumbers]

我如何做到PageNumbers = if PageNumber[index] > 5, then [x+100 for x in PageNumbers] else PageNumber[index]

我想要的输出是[30, 50, 80, 120, 160, 300, 340, 380]

【问题讨论】:

    标签: python


    【解决方案1】:

    查看enumerate 以在迭代列表时同时获取索引和值。

    这将允许您执行以下操作:

    PageNumbers = [30, 50, 80, 120, 160, 200, 240, 280]
    PageNumbers = [val + 100 if idx > 4 else val for idx, val in enumerate(PageNumbers)]
    

    *请注意,我实际上使用了idx > 4,这意味着任何超过第 5 个值(基于 0 索引)的值,如您在示例中所指出和使用的。当然,您可以更改为使用您喜欢的任何索引。

    在此处查看关于enumerate 的简短帖子和讨论: Python using enumerate inside list comprehension

    【讨论】:

      【解决方案2】:

      将列表分为两部分:

      PageNumbers = PageNumbers[:5] + [x+100 for x in PageNumbers[5:]]
      

      【讨论】:

        【解决方案3】:

        使用 conditional expressionenumerate 内置函数:

        >>> PageNumbers = [30, 50, 80, 120, 160, 200, 240, 280]
        >>> [x + 100 if i > 4 else x for i, x in enumerate(PageNumbers)]
        [30, 50, 80, 120, 160, 300, 340, 380]
        
        

        【讨论】:

          【解决方案4】:
          for i in range(5, len(PageNumbers)):
              PageNumbers[i] += 100
          

          【讨论】:

            【解决方案5】:

            只需将其分配回去

            PageNumbers[5:]=[x +100 for x in PageNumbers[5:]]
            PageNumbers
            [30, 50, 80, 120, 160, 300, 340, 380]
            

            【讨论】:

              【解决方案6】:

              只是一个使用 NumPy 的例子:

              import numpy as np
              
              PageNumbers = np.array([30, 50, 80, 120, 160, 200, 240, 280])
              
              PageNumbers[5:] += 100
              
              print(PageNumbers)
              #=> [ 30  50  80 120 160 300 340 380]
              

              【讨论】:

                猜你喜欢
                • 2019-12-26
                • 1970-01-01
                • 2013-11-03
                • 2021-11-29
                • 1970-01-01
                • 2016-12-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多