提取列表中名称的前两个字符并串联成字符串?

时间:2018-11-18 17:23:35

标签: python

我有一个列表

names = ['John', 'Ralph', 'Frank', 'Luke', 'David', 'Helen', 'Chloe', 'Sophia']

我想把前两个字母合并在一起 例如:

JoRaFrLuDaHeChSo

我发现下面的代码完成了类似的工作,并且我添加了[:2]以获取前两个字母,但是它不起作用。

print("".join([str(x) for x in names[:2]))

3 个答案:

答案 0 :(得分:4)

您将切片放置在错误的位置。另外,名称已经是字符串,您不需要str()

print("".join([x[:2] for x in names]))

答案 1 :(得分:2)

您快到了,列表切片需要在字符串上完成,而不是原始列表。

my_string = "".join([x[:2] for x in names])

答案 2 :(得分:0)

如果愿意,还可以使用qvoid语法:

names = ['John', 'Ralph', 'Frank', 'Luke', 'David', 'Helen', 'Chloe', 'Sophia']

# import the needed standard functions
from itertools import islice, repeat, chain

# take 2 initial characters of each string
prefixes = map(islice, names, repeat(2))

# chain prefixes
concatenated = chain.from_iterable(prefixes)

# join to one string
result = ''.join(concatenated)