我有一个列表
names = ['John', 'Ralph', 'Frank', 'Luke', 'David', 'Helen', 'Chloe', 'Sophia']
我想把前两个字母合并在一起 例如:
JoRaFrLuDaHeChSo
我发现下面的代码完成了类似的工作,并且我添加了[:2]以获取前两个字母,但是它不起作用。
print("".join([str(x) for x in names[:2]))
答案 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)