Python 卷积条件表理解
假设我有一组元组,每个元组由4个整数组成(a,B,C,D) 我有一个4整数的输入元组(x,y,z,w) 我想列出集合中的所有元素,其中Python 卷积条件表理解,python,loops,list-comprehension,Python,Loops,List Comprehension,假设我有一组元组,每个元组由4个整数组成(a,B,C,D) 我有一个4整数的输入元组(x,y,z,w) 我想列出集合中的所有元素,其中 (abs(A - x) + abs(B - y) + abs(C - z) + abs(D - w)) / 4 <= i 我不知道如何解决这个问题,我查了一个生成器的定义,它说生成器只是一个函数,它的行为就像迭代器,我假设它是我的总和(abs(x-y)),但是这个东西应该返回一个数字,我太困惑了,请帮我,非常感谢 问题是您试图将生成器除以int for
(abs(A - x) + abs(B - y) + abs(C - z) + abs(D - w)) / 4 <= i
我不知道如何解决这个问题,我查了一个生成器的定义,它说生成器只是一个函数,它的行为就像迭代器,我假设它是我的总和(abs(x-y)),但是这个东西应该返回一个数字,我太困惑了,请帮我,非常感谢 问题是您试图将
生成器
除以int
for w in [element for element in SET
if ((sum(abs(x - y)) for x, y in zip(element, input)) / 4) <= i]:
^---------------- right here -------------------^
请注意,总和等于一个参数。当然,这不起作用,因为zip(元素,输入)
无效(element
不可编辑)。我不确定它应该是什么。如果元素
与输入的每个值匹配
,请使用(元素,)*4
编辑:如果我理解,SET
类似于{(1,2,3,4),(5,6,7,8)}
,在这一点上它是可以使用的,如果你解决了生成器问题,它应该可以工作。只是澄清一下,(A,B,C,D)
是一组元组还是一组整数?我从您试图完成的内容中得出的结论是,它是一个整数元组,如so(1,2,3,4)
。如果你能举例说明你的输入是什么样子的,这会有所帮助。此外,一段相关代码,最好是一个最小的工作示例,也会很有用。
if ((sum(abs(x - y)) for x, y in zip(key, js)) / 4) == 0]:
TypeError: unsupported operand type(s) for /: 'generator' and 'int'
for w in [element for element in SET
if ((sum(abs(x - y)) for x, y in zip(element, input)) / 4) <= i]:
^---------------- right here -------------------^
if (sum((abs(x - y)) for x, y in zip(element, input)) / 4) <= i]: