将字符串添加到 python 列表的每个元素
Posted
技术标签:
【中文标题】将字符串添加到 python 列表的每个元素【英文标题】:add string to every element of a python list 【发布时间】:2019-05-07 00:33:50 【问题描述】:我有一个由 python 字典键组成的列表; 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 个元素添加到一个新列表中?