【发布时间】:2019-03-31 01:21:35
【问题描述】:
我有三个元组,listA、listB 和 listC。
重要的是,在每个列表中,每个值都与其在其他两个列表中的初始对应值保持相同的索引。
我有两个条件,一个是listA,一个是listB。我希望删除 listA 中不满足 listA 条件的所有值,并删除 listB 中不满足 listB 条件的所有值,以便删除具有相同索引的所有值所有三个列表中的这些已删除值也将被删除。
如果不满足listB 条件,这将涉及从listA 等中删除一些满足listA 条件的值。所以结果是三个列表,它们的值都各自满足自己列表的条件(尽管listC 没有条件),并且这些值具有与最初相同的配对。
我已经设法通过使用 for 循环遍历列表来做到这一点,下面显示了我这样做的一个示例,对 listA 施加的条件是 x20。我知道有更优雅和 pythonic 的方法可以使用 zip 和过滤来做到这一点,但是到目前为止我还不能让它们工作。我不是一个非常有经验的程序员,所以任何帮助将不胜感激。
listA=(15,5,2,8,10,11,4,8)
listB=(19,25,28,14,32,10,21,29)
listC=(0,9,13,4,19,51,83,13)
listAA=[]
listBB=[]
listCC=[]
for i in range(len(listA)):
if listA[i]<10:
if listB[i]>20:
listAA.append(listA[i])
listBB.append(listB[i])
listCC.append(listC[i])
else:
continue
else:
continue
print(listAA,listBB,listCC)
【问题讨论】:
-
很高兴你已经设法使用常规循环来做到这一点。如果您可以将代码添加到问题中,这将非常有帮助,以便我们可以从这一点开始为您提供帮助。另外,防止你的好问题被关闭。
-
感谢您的反馈我已经添加了一个使用我使用的方法的示例。
标签: python python-3.x list filter