如何删除/删除元素?

时间:2014-03-02 14:09:46

标签: python tuples element

如何删除python中的元素?

2 个答案:

答案 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. 认为
  2. 再想一想
  3. 基本上,你想要的是:

    1. 获取要删除的类的名称
    2. 检查该类的名称是否存在
    3. 将其从列表中删除
    4. 所以代码变成了:

      # 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')]

      • 您存储课程的方式也非常错误,您可能希望将第一个字段分开,以便将Math101分开并轻松搜索(提供所有101个课程或全部Math ...)的级别课程和主题,当您重构代码并将其放入数据库时​​,这将使您更容易。

答案 1 :(得分:0)

如果要从列表中删除索引处的项目,

鉴于dropped_class是一个整数0 <= dropped_class < len(list1)而list1是一个列表

del list1[dropped_class]

list1.pop(dropped_class)

或者如果您只知道项目而不知道您可以做的索引

list1.remove(item)