在python中,如何在列表的每个元素中添加常量字符串?

在python中,如何在列表的每个元素中添加常量字符串?,python,pandas,Python,Pandas,我想在列表的每个元素中添加一个常量值作为前缀。我想做一些类似的事情。但上面的答案都是用for循环的。我想避免在我的程序中出现循环 我的目标是我必须创建一个列表,它的值应该是“未知联系人编号0”、“未知联系人编号1”、“未知联系人编号2”…“未知联系人编号n”。这里未知联系人编号是我的前缀。我想在列表中添加此元素 到目前为止我试过这个 x=pd.DataFrame(index=range(val)) print ('unknown contact number '+x.index.astype(s

我想在列表的每个元素中添加一个常量值作为前缀。我想做一些类似的事情。但上面的答案都是用for循环的。我想避免在我的程序中出现循环

我的目标是我必须创建一个列表,它的值应该是
“未知联系人编号0”、“未知联系人编号1”、“未知联系人编号2”…“未知联系人编号n”。
这里
未知联系人编号
是我的前缀。我想在列表中添加此元素

到目前为止我试过这个

x=pd.DataFrame(index=range(val))
print ('unknown contact number '+x.index.astype(str)).values.tolist()
我的问题是我是否在代码中添加了更复杂的内容以避免for循环? 或者其他更好的方法来解决这个问题


提前感谢。

如果性能很重要,可以使用
f-string
s,因为熊猫中的文本功能很慢:

a = [f'unknown contact number {i}' for i in range(N)]
计时

N = 10000

In [31]: %timeit ('unknown contact number ' + pd.Series(np.arange(N)).astype(str)).tolist()
6.63 ms ± 708 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [32]: %timeit [f'unknown contact number {i}' for i in range(N)]
317 µs ± 3.61 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

如果您想不惜任何代价避免for循环,可以尝试使用带有lambda函数的map

list_ = map(lambda x : 'unknown contact number' + x, df.index.astype(str).values.tolist())

如果您使用的是Python3,那么map具有懒惰的优势。虽然将map与lambda函数结合使用会比列表理解慢一些,但如果您有自定义函数,则始终可以将其与map结合使用。

感谢您提供的解决方案。我从表现的角度理解了这个问题,对于我的学习,你能给我推荐其他更好的方法吗+1@MohamedThasinah-然后使用
pd.Series(np.arange(N)).astype(str.radd('unknown contact number').tolist()
,其中使用函数-从右侧添加字符串;)