从打印列表如何删除括号,引号并在每个姓氏之前插入"and"



此代码为我提供输出:The names found are: ['Alba', 'Dawson', 'Oliver']

我需要去掉括号和引号,并始终打印";以及";在最后一个名字之前(名字的数量可以是可变的,例如我可以有3,4,5,6个名字(,所以我需要这个输出:

The names found are: Alba, Dawson and Oliver

代码

name = "Alba, Dawson, Oliver"
names = name.split(', ')
print("The names found are: ", names)

我怎样才能做到这一点?

将列表拆分为各个名称后,可以根据列表的长度使用,and重新加入列表:

name = "Alba, Dawson, Oliver"
names = name.split(', ')
print("The names found are: ", end = '')
if len(names) == 1:
print(names[0])
else:
print(', '.join(names[:len(names)-1]), 'and', names[-1])

输出:

The names found are: Alba, Dawson and Oliver

我明白了:您想用and替换最后一个逗号('(。这样就可以了。

splitted = [name.strip() for name in names.split(',')]
as_string = ', '.join(splitted[:-1]) + ' and ' + splitted[-1]

上一个答案

听起来你需要创建一个列表,而不是分配给单个变量,然后对列表进行索引,以获得作为变量的名称。

name = "Alba, Dawson, Oliver"
names = name.split(', ')
print(names[0])
print(names[1])
print(names[2])
# but you can do this instead:
for i in range(len(names)):
print(names[i])

相关内容