我正在尝试编写一个程序,该程序需要一个名称列表并按字母顺序对其进行排序,然后将其重复出现。
这是我的代码:
question = input('Students: ')
roll = print('Class Roll')
students = question.split()
students.sort()
v1 = 0
v2 = 1
for i in range(len(students)):
person = students[v1:v2]
print(person)
v1 = v1 + 1
v2 = v2 + 1
当我运行代码并键入名称列表时,它会在每个名称周围以['']重复它。 像这样:
Students: Bob Adam Carl Fred
Class Roll
['Adam']
['Bob']
['Carl']
['Fred']
我唯一不知道如何解决的是删除每个名称周围的['']。当我尝试使用[2:-2]删除它们时,它只会输出[]作为我键入的名称的数量。是否可以删除它们?我试图找到答案,但是在任何地方都找不到。
答案 0 :(得分:1)
因为要打印的是列表的一部分,而不是每个索引的字符串。这会为您提供一个项目的列表,然后打印该一个项目的列表,因此会显示方括号和撇号(即python的列表表示):
person = students[v1:v2]
例如:
>>> listy = ['a', 'b', 'c']
# if I take a slice that's just the middle item, I would get
>>> print(listy[1:2])
['b']
>>> print(listy[0:1])
['a']
# compare with
>>> print(listy[1])
b
>>> print(listy[0])
a
您也使自己变得更加艰难。您可能想要:
for person in students:
# person = students[v1:v2]
print(person)
# v1 = v1 + 1
# v2 = v2 + 1