Python: Remove a single entry in a list based on the position of the entry
本问题已经有最佳答案,请猛点这里访问。
是否有简单的方法删除列表中的条目?我只想删除第一个条目。在我看过的每个论坛中,唯一可以删除一个条目的方法是使用
1 2 | list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha'] list.remove(0) |
这不起作用,因为您只能删除基于其名称的条目。我必须运行
如果您需要任何其他信息,请询问。
您可以尝试以下方法:
1 2 3 4 5 6 7 8 | >>> my_list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha'] >>> del my_list[0] >>> my_list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha'] >>> if 'hey' in my_list: # you're looking for this one I think ... del my_list[my_list.index('hey')] ... >>> my_list ['hi', 'hello', 'phil', 'zed', 'alpha'] |
您也可以使用
1 | my_list = filter(lambda x: x!='hey', my_list) |
使用
1 | my_list = [ x for x in my_list if x!='hey'] |
首先,不要称某个东西为"list",因为它会破坏内置类型"list"。其次,你的答案是:
1 2 3 4 | >>> my_list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha'] >>> del my_list[1] >>> my_list ['hey', 'hello', 'phil', 'zed', 'alpha'] |
列表使用的是位置,而不是键(或名称,无论您想如何称呼它们)。
如果需要对数据结构进行命名访问,请考虑使用字典,它允许通过使用映射到
1 2 3 4 5 | d = {'hey':0, 'hi':0, 'hello':0, 'phil':0, 'zed':0, 'alpha':0} del d['hey'] print(d) # d = {'alpha': 0, 'hello': 0, 'hi': 0, 'phil': 0, 'zed': 0} |
否则,您需要通过获取元素的索引并调用
要添加到答案调查中,请执行以下操作:
1 2 3 4 | >>> my_list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha'] >>> my_list=my_list[1:] >>> my_list ['hi', 'hello', 'phil', 'zed', 'alpha'] |