【问题标题】:add string to every element of a python list将字符串添加到 python 列表的每个元素
【发布时间】:2019-05-07 00:33:50
【问题描述】:

我有一个由 py​​thon 字典键组成的列表; list(dict.keys()).

dict.keys()
dict_keys(['South', 'North'])

我想为list = ['South', 'North'] 中的每个元素添加一个字符串,例如:

my_string = 'to_'

最后我想要list = ['to_South', 'to_North']

有什么方法可以用来做这个吗?

类似:

list.add_beginning_of_each_element('to_')

【问题讨论】:

    标签: python string list dictionary


    【解决方案1】:

    使用list comprehension

    lst = ['South', 'North']
    result = ['to_' + direction for direction in lst]
    

    您也可以使用map:

    def add_to_beginning(s, start='to_'):
        return start + s
    
    lst = ['South', 'North']
    
    result = list(map(add_to_beginning, lst))
    print(result)
    

    【讨论】:

    • 不错,但它基本上是使用 for 循环向每个元素添加一个字符串。我正在寻找一些内置函数,它可以做同样的事情,没有 for 循环?
    • @oakca 你需要有一个循环somewhere,无论是显式的还是隐式的。我宁愿让它明确
    【解决方案2】:

    dict.keys() 不返回实际的键,它仅返回键的视图(=副本)。

    如果要打印密钥的修改版本:

    print(['to_' + key for key in d.keys()])
    

    如果你想改变实际的键:

    d = {'to_' + key: value for key, value in d.items()}
    

    【讨论】:

      【解决方案3】:

      map:

      >>> l = ['South', 'North']
      >>> list(map('to_'.__add__,l))
      ['to_South', 'to_North']
      >>>
      

      pandas 中有一个add_prefix,所以如果你有一个 pandas 数据框,你可以使用 add_prefix 添加到列中,这是一个从列表中制作数据框并将它们作为列的示例:

      >>> import pandas as pd
      >>> pd.DataFrame(columns=['South', 'North']).add_prefix('to_').columns.tolist()
      ['to_South', 'to_North']
      

      【讨论】:

      • 完美^^这就是我想要的
      • 我在等待这一分钟
      • @oakca 解决评论被删除的问题:list(map((site+'-').__add__, l))
      【解决方案4】:

      你可以使用 lambda 函数:

      lst = ['South', 'North']
      result = list(map(lambda x: 'to_' + x, lst))
      

      【讨论】:

      • 我需要将字符串添加到列表元素的末尾,而不是开头,所以 lambda 可以工作,但 add 不能
      猜你喜欢
      • 1970-01-01
      • 2023-02-15
      • 1970-01-01
      • 2023-01-26
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      相关资源
      最近更新 更多