从列表中删除无效元素的函数(已更正)

你好, 我试图通过删除这些对成对列表(L4)来修改这些列表 对不存在的第三个列表中的对,称为Pairist列表. 以下是我编写的例程的简化部分. 然而 它没有给出正确的输出. 请帮忙! 自从我是新手以来,我可能会造成微不足道的雾气. def getl5(): L5 = [] PAIRLIST = [[1,2],[3,4],[3,5],[3,6],[9,7],[8,9],[8,7],[7,9] ,[11,10]] L4 = [[4,2],[4,7],[4,10],[4,12],[9,2],[9,7],[9,10],[9,12] ,[11,2],[11,7]] 对于L4中的一对: 如果不对配对列表: l4.remove(对) 打印" L4",L4 给出的输出是: L4是[[4,7],[4,12],[9,7],[9,12],[11,7]]

# 回答1

吉里什·萨哈尼(Girish Sahani)写道: 更好地迭代副本,例如 像这样: PAIRLIST = [[1,2],[3,4],[3,5],[3,6],[9,7],[8,9],[8,7],[7,9] ,[11,10]] L4 = [[4,2],[4,7],[4,10],[4,12],[9,2],[9,7],[9,10],[9,12],[9,12],[ 11,2],[11,7]] 对于L4 [:]的对: 如果不对配对列表: l4.remove(对) 打印" L4 IS",L4
# 回答2

谢谢Mark ....这也有效... 顺便说一句,当我尝试运行以下代码时, python大约有50个元素(对),只是悬挂. 任何想法为什么 发生...数据并不大: 6],[9,7],[8,9],[8,7],[7,9],[11,10]] l4 = [[4,2],[4,7],[4],[4 ,10],[4,12],[9,2],[9,7],[9,10],[9,12],[11,2],[11,7] [:]:如果不对配对:l4.remove(pair)打印" l4 is",l4-http://mail.python.org/mailman/listinfo/python-list(_@_ _) 吉里什·萨哈尼(Girish Sahani)写道: 使用集 DEF GETS5(): paires = set(((1,2),(3,4),(3,5),(3,6),(9,7),(8,9),(8,7),(8,7),(7,(7,) 9),(1 1,10)]) s4 = set(((4,2),(4,7),(4,10),(4,12),(9,2),(9,7),(9,10),(9,9,(9,,) 12),(11,2),(11,7)]) S4&=配对 打印" S4是",S4 输出是 S4设置([(9,7)])
# 回答3

" girish sahani" 在消息中写道 新闻:Ma *********************************************************************************************************************** 您已经成为经典失误之一的受害者! 第一个是"从不 在亚洲开始一场土地战! "切勿修改您正在迭代的列表!" - 保罗
# 回答4

吉里什·萨哈尼(Girish Sahani)写道: 通过反复从副本中删除东西来构建过滤的新列表 原始列表中的做法并不是最快的方法,但是 以下代码无法用50个项目"挂起"而不是 10,除非您的计算机可笑慢(大约需要0.000113 我的机器上的几秒钟). 也许您打算写50k物品? (我的机器11秒)

标签: python

添加新评论