【问题标题】:How to replace multiple Numbers in single list in python [duplicate]如何在python中替换单个列表中的多个数字[重复]
【发布时间】:2020-06-15 12:59:09
【问题描述】:

我有一个清单说

a= [1,2,3,4,5,7,1,2,3,1]

我想将 a 中的 1 替换为 10。
所以新列表应该是

[10,2,3,4,5,7,10,2,3,10]

【问题讨论】:

  • 你可以看看index() 的列表方法。

标签: python list replace


【解决方案1】:

将 1 替换为 10

a = [1,2,3,4,5,7,1,2,3,1]
a1_data = []
for i in a:
    if i == 1:
        i = 10
        a1_data.append(i)
    else:
        a1_data.append(i)
print(a1_data)

【讨论】:

    【解决方案2】:

    如果您从数据集中读取列表。可以直接对数据框进行如下处理。

    for i in range(len(df)):
        if(df.loc[i,'column'] == 1):
            df.at[i, 'column'] = 10
            Continue;
    

    【讨论】:

      【解决方案3】:

      您可以使用列表推导相当轻松地进行任何列表编辑。在这种情况下,您可以这样做:

      a = [x if x!=1 else 10 for x in a]
      

      【讨论】:

        【解决方案4】:

        除了@Vaibhav 答案,您还可以使用列表理解构建一个新列表:

        a_modified = [10 if x == 1 else x for x in a]
        

        【讨论】:

          【解决方案5】:

          大多数pythonic方法是使用列表推导:

          a = [1, 2, 3, 4, 5, 7, 1, 2, 3, 1, ]
          a = [10 if number == 1 else number for number in a]
          

          如果您必须替换多个数字,您可以使用映射:

          a = [1, 2, 3, 4, 5, 7, 1, 2, 3, 1, ]
          mapping = {
          # old: new
            1: 10,
            2: 20,
          }
          a = [mapping.get(number, number) for number in a]
          

          最后一行将搜索映射中的数字,如果找到它将使用替换,如果不是原始值。

          【讨论】:

            【解决方案6】:

            使用列表推导:

            a = [1,2,3,4,5,7,1,2,3,1]
            b = [10 if v == 1 else v for v in a]
            print(b)
            

            输出:

            [10, 2, 3, 4, 5, 7, 10, 2, 3, 10]
            

            【讨论】:

              【解决方案7】:

              你可以这样做:

              a= [1,2,3,4,5,7,1,2,3,1]
              for i,v in enumerate(a):
                  if v == 1:
                      a[i] = 10
              print(a)
              

              输出:

              [10,2,3,4,5,7,10,2,3,10]
              

              【讨论】:

                猜你喜欢
                • 2017-11-02
                • 2019-05-05
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-05-20
                • 2011-01-05
                • 2018-08-05
                • 1970-01-01
                相关资源
                最近更新 更多