将字符串添加到 python 列表的每个元素

Posted

技术标签:

【中文标题】将字符串添加到 python 列表的每个元素【英文标题】:add string to every element of a python list 【发布时间】: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_')

【问题讨论】:

【参考方案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 不能

以上是关于将字符串添加到 python 列表的每个元素的主要内容,如果未能解决你的问题,请参考以下文章

Python中 appendextendinsertadd 区别

如何将每个 x 个元素拆分一个列表并将这些 x 个元素添加到一个新列表中?

将 char 添加到列表中的每个元组的第二个元素

将字符串添加到Dataframe Python中列的所有元素[重复]

PYTHON字典 元祖 列表尝试应用

python学习小总结(列表元组字典集合字符串)