如果满足其他列表的某些参数,则打印列表的组件

时间:2018-09-08 15:37:29

标签: python-3.x

我有两个长度相同的列表,如果列表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语句做错了什么?任何帮助

2 个答案:

答案 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)