删除列表周围的方括号和撇号

时间:2018-11-19 05:15:31

标签: python

我正在尝试编写一个程序,该程序需要一个名称列表并按字母顺序对其进行排序,然后将其重复出现。

这是我的代码:

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]删除它们时,它只会输出[]作为我键入的名称的数量。是否可以删除它们?我试图找到答案,但是在任何地方都找不到。

1 个答案:

答案 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