我有两个长度相同的列表,如果列表b中的组成部分大于列表a中相同组成部分的平方,我想打印出列表b的组成部分。
a = [2, 3, 4, 5, 6]
b = [10, 11, 12, 13, 14]
例如:
if b[0] > (a[0])**2:
print (b[0])
所需的输出是列表
[10, 11]
因为10 > 2**2 and 11 > 3**2
>>> a = [2, 3, 4, 5, 6]
>>> b = [10, 11, 12, 13, 14]
>>> for x, y in zip(a, b):
... if y > x**2:
... print(b)
我认为if语句做错了什么?任何帮助
答案 0 :(得分:2)
print([b[i] for i in range(len(b)) if b[i] > a[i]**2])
给予:
[10,11]
以及您的方法:
print([i for w,i in zip(a,b) if i > w**2])
答案 1 :(得分:1)
您也可以尝试以下操作:
a = [2, 3, 4, 5, 6]
b = [10, 11, 12, 13, 14]
for index, value in enumerate(b):
if value > a[index]**2:
print(value)