【问题标题】:Python: Add Same Prefix to All Elements in ListPython:为列表中的所有元素添加相同的前缀
【发布时间】:2019-09-14 07:30:05
【问题描述】:

假设我有以下 Python 列表:

['7831-0', nan, '3165-0', '7831-0', '7831-1'] 

我想为上面列表中的每个元素添加相同的前缀('ADD_'。我还想从我的列表中删除 nan。我想要的输出列表如下:

list = ['ADD_7831-0', 'ADD_3165-0', 'ADD_7831-0', 'ADD_7831-1']

我尝试了以下代码:

prefix_ADD = 'ADD_'

new_list = [prefix_ADD + x for x in list]

但我收到以下错误:

TypeError: must be str, not float

【问题讨论】:

  • @Pine-Nuts[0] - 对熊猫感兴趣?

标签: python list loops add prefix


【解决方案1】:
your_list = ['7831-0', float('nan'), '3165-0', '7831-0', '7831-1']
print(your_list)  # ['7831-0', nan, '3165-0', '7831-0', '7831-1']
prefix_ADD = 'ADD_'
new_list = [prefix_ADD + x for x in your_list if isinstance(x, str)]
print(new_list)  # ['ADD_7831-0', 'ADD_3165-0', 'ADD_7831-0', 'ADD_7831-1']

【讨论】:

    【解决方案2】:

    [prefix_ADD + x for x in list if not str(x) == "nan"]

    是一种可以过滤掉 nan 的方法

    【讨论】:

      【解决方案3】:

      也许是一个不太优雅的解决方案,但如何:

      new_list=[]
      old_list = ['7831-0', nan, '3165-0', '7831-0', '7831-1']
      
      prefix_ADD = 'ADD_'
      
      for x in old_list:
          if x != nan:
              new_list.append(prefix_ADD + x)
      
      print(new_list)
      # ['ADD_7831-0', 'ADD_3165-0', 'ADD_7831-0', 'ADD_7831-1']
      

      【讨论】:

        猜你喜欢
        • 2021-09-26
        • 2013-04-15
        • 2018-08-12
        • 2020-01-27
        • 1970-01-01
        • 2015-07-29
        • 2011-03-20
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多