如何解决列表推导遗漏了值
我的列表理解代码有点麻烦。给定不同整数的有序列表X和类似列表Y,构造所有对(x,y)的列表,使得x来自X,y来自Y,x 例如:输入-> 3 4 5 6 7; 1 2 3 4 5
输出:
3 4
3 5
4 5 当我放入以下列表集时,上面的代码可以完美地接受: 1 2 3 4 5 6 7
4 5 6 7 8 9 10 在这种情况下,在1个组合(即(1,4)(1,5)等)之后,它总是将组合与10排除在外。例如:它将(2,10)(3,10 )等。有人可以告诉我为什么会这样吗?Xstrs = input().split(' ')
X = [int(x) for x in Xstrs]
Ystrs = input().split(' ')
Y = [int(x) for x in Ystrs]
Z = [(x,y) for x in Xstrs for y in Ystrs if x < y] #insert a list comprehension expression
for pair in Z: print(pair[0],pair[1])
解决方法
之所以发生这种情况,是因为您在列表理解中循环了Xstr和Ystr,并且因为它们是字符串,所以'2'被认为大于'10'
只需更改此行:
Z = [(x,y) for x in Xstrs for y in Ystrs if x < y]
对此
Z = [(x,y) for x in X for y in Y if x < y]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。