如何删除python中的元素?
答案 0 :(得分:0)
你的代码在很多方面都是错误的,你应该与知识渊博的朋友一起完成它。关于您的具体问题:
dropped_class = raw_input ("Which class would you like to drop? Enter number corresponding to class name: ")
del dropped_class
你期望它做什么?您创建包含字符串的变量dropped_class
,然后删除该变量的值。它到底做了什么?没有。编码不是魔术,你不能写任何没有意义的东西,并期望它的工作!我对你的最好建议是:
所以代码变成了:
# 1. get the name of the class to be removed
dropped_class = raw_input ("Which class would you like to drop? Enter number corresponding to class ")
# 2. check whether that class' name exists
found = False
for class_tup in tup5:
if dropped_class in class_tup[0]:
found = True
break
# 3. remove it from the lists
if found:
tup5.remove(class_tup)
有更好,更短的方法可以做到这一点,但我给你这样做的方式,这样对于初学者来说它更具可读性和可理解性。
编辑:
以下代码:
if dropped_class in class_tup[0]:
检查dropped_class
中的字符串是否为class_tup
的第一个元素的字符串的子字符串。您可以通过以下方式检查确切的相等性:
if dropped_class == class_tup[0]:
Nota Bene :
你的类元组的命名确实是错误的,你应该声明如下:
classes = [('Math 101', 'Algebra', 'Fall 2013', 'A'),
('History 201', 'WorldWarII', 'Fall 2013', 'B'),
('Science 301', 'Physics', 'Fall 2013', 'C'),
('English 401', 'Shakespeare', 'Fall 2013', 'D')]
您存储课程的方式也非常错误,您可能希望将第一个字段分开,以便将Math
和101
分开并轻松搜索(提供所有101个课程或全部Math
...)的级别课程和主题,当您重构代码并将其放入数据库时,这将使您更容易。
答案 1 :(得分:0)
如果要从列表中删除索引处的项目,
鉴于dropped_class是一个整数0 <= dropped_class < len(list1)
而list1是一个列表
del list1[dropped_class]
或
list1.pop(dropped_class)
或者如果您只知道项目而不知道您可以做的索引
list1.remove(item)