繁体   English   中英

python - 如何比较列表中的每个值(浮点数)

[英]python - How to compare each value(float) in list

我有 4 个列表我需要比较 2 个列表如果 list1 > list2 从 list3 得到一个值,如果 list1 < list2 从 list4 得到一个值

这是我的最新代码:`

number_list_1 = [1.15679, 0.042, 0.88773]
number_list_2 = [1.157, 0.443434343, 0.0948887]
al = [5, 10, 100]
bl = [4, 200, 24]


arr_rs = []
for i,j in zip(number_list_1, number_list_2):
    if i > j:
        for a in al:
            arr_rs.append(a)
    if i < j :
        for b in bl:
            arr_rs.append(b)
        break
print(arr_rs)

我期待这个 output:

[4,200,100]但是当我运行时得到这个 output: [4,200,24]

所做的更改:-

(1) 无需使用for loop而是可以应用一次。 我代码中的indexer

代码:-

number_list_1 = [1.15679, 0.042, 0.88773]
number_list_2 = [1.157, 0.443434343, 0.0948887]
al = [5, 10, 100]
bl = [4, 200, 24]


arr_rs = []
indexer=0
for i,j in zip(number_list_1, number_list_2):
    if i > j:
        arr_rs.append(al[indexer])
    if i < j :
        arr_rs.append(bl[indexer])
    indexer+=1   
print(arr_rs)

Output:-

[4, 200, 100]

使用枚举:-

number_list_1 = [1.15679, 0.042, 0.88773]
number_list_2 = [1.157, 0.443434343, 0.0948887]
al = [5, 10, 100]
bl = [4, 200, 24]


arr_rs = []

for indexer,j in enumerate(zip(number_list_1, number_list_2)):
    if j[0] > j[1]:
        arr_rs.append(al[indexer])
    elif j[0] < j[1] :
        arr_rs.append(bl[indexer])
print(arr_rs)

Output:-同上..

使用 zip():-

number_list_1 = [1.15679, 0.042, 0.88773]
number_list_2 = [1.157, 0.443434343, 0.0948887]
al = [5, 10, 100]
bl = [4, 200, 24]


arr_rs = []
for a,b,c,d in zip(number_list_1,number_list_2,al,bl):
    if a > b:
        arr_rs.append(c)
    elif a < b :
        arr_rs.append(d)
print(arr_rs)

Output:-与第一个代码相同

由于列表理解和三元条件运算符,您可以在一行中完成。

我发现它对于单行代码来说非常可读。

enumerate()在这里也很有用,可以处理索引。

arr_rs = [al[i] if x > y else bl[i] for i, (x, y) in enumerate(zip(number_list_1, number_list_2))]
number_list_1 = [1.15679, 0.042, 0.88773]
number_list_2 = [1.157, 0.443434343, 0.0948887]
al = [5, 10, 100]
bl = [4, 200, 24]

arr_rs = []
for i, j in zip(number_list_1, number_list_2):
    if i > j:
        arr_rs.append(al[number_list_1.index(i)])
    elif i < j:
        arr_rs.append(bl[number_list_1.index(i)])
print(arr_rs)

试试这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM