tup1 = (100,200,300)
tup2 = (2,4,6)
tup = (x/y for x in tup1, y in tup2)
或
原来是这样
tup = (50,50,50)
但是来了
SyntaxError: invalid syntax
那个逗号
请您参考如下方法:
试试这个:
tup = tuple(int(i/j) for i,j in zip(tup1, tup2))
输出:
(50,50,50)
注意:
- 当您执行
(x/y for x in tup1, y in tup2)时,您正在尝试创建一个生成器。 - 同样
(x/y for x in tup1, y in tup2)不是有效的双循环操作。您可能已经尝试过(x/y for x in tup1 for y in tup2)但它还是会创建一个生成器对象,即使您将其映射为元组格式,它也会提供(50.0, 25.0, 16.666666666666668, 100.0, 50.0, 33.333333333333336, 150.0, 75.0, 50.0)- 错误,因为双循环的运行方式。 - 您需要
int(x/y)而不仅仅是i/j因为即使i和j是整数,除法运算会将结果变成 float 。
