ValueError: list.remove(x): x 不在列表中(但有)
Posted
技术标签:
【中文标题】ValueError: list.remove(x): x 不在列表中(但有)【英文标题】:ValueError: list.remove(x): x not in list(but there is) 【发布时间】:2018-07-05 00:04:05 【问题描述】:我想要一种在随机选择元素后从列表中删除元素的方法,以免再次被选中。 当我尝试运行此代码时:
import random
list1 = ['afgdddd', 'bcbvnbn', 'casretb', 'dbcbv ', 'egfhsgs']
list2 = ['a5y5546', 'brtewtwret', 'chrtyey', 'dqawtet', 'egreg']
choice1 = random.randint(0, len(list1) - 1)
x=(list2[choice1])
list1.remove(choice1)
list2.remove(x)
print(x)
print(list1[choice1])
print(list2[choice1])
然后我得到这个错误: ValueError: list.remove(x): x not in list
【问题讨论】:
如果您发布了完整的回溯,您会看到错误发生在list1.remove(choice1)
行上。事实上,这个数字不在list1
中。不幸的是,您将变量命名为 x
- 与错误消息使用的变量相同。
我知道,但我想知道如何解决这个错误。
好吧,那么您应该已经描述了您尝试使用list1.remove[choice]
实现的目标。我在这里假设:***.com/q/627435/8881141
对不起,我编辑了它
大家不要再给我发其他帖子了!!!在我问之前我已经阅读了它们。
【参考方案1】:
list1 = ['afgdddd', 'bcbvnbn', 'casretb', 'dbcbv ', 'egfhsgs']
list2 = ['a5y5546', 'brtewtwret', 'chrtyey', 'dqawtet', 'egreg']
choice1 = random.randint(0, len(list1) - 1)
list2 中的元素不在 list1 中。 您生成随机数并从 list2 中获取元素,并尝试从 list1 中删除。错误是正确的,list2中的item不在list1中
您可以做的是打印出x
,并且仅当它存在于 list1 中时才将其删除
if x in list1:
list1.remove(x)
注意,list.remove(param)
这里的参数是索引值以外的特定索引处的项目
【讨论】:
老兄,当我尝试从列表 1 中删除某些内容时,错误即将到来。 @newhere 我知道你可以从 list2 中删除项目x
但 choice1
是项目以外的索引,python list remove() 将项目作为项目索引以外的参数
是的,但它的项目不同。两个列表中的项目目的不同。目的是从第一个列表中选择一个随机项目,然后从第二个列表中选择与第一个列表位置相同的项目。然后我希望将这两项从列表中删除,以免再次被选中。以上是关于ValueError: list.remove(x): x 不在列表中(但有)的主要内容,如果未能解决你的问题,请参考以下文章
获取ValueError:list.remove(x):x尝试从列表中删除值时不在列表中
错误:list.remove(x):x 不在列表中,我不明白为啥
pymssql.connect 错误 list.remove(x): x 不在列表中