循环遍历列表并找到第一次出现的整数并将这些元素保存在新列表中的最有效方法是什么?在这个例子中,我存储了前3个数字,它们应该是1.4,2.1和3。
import math
list = [.3, .8, 1.4, 1.9, 2.1, 2.7, 3, 3.2, 3.8]
new_list = [0, 0, 0]
for i in list:
if math.floor(i) == 1:
print("one:", i)
if new_list[0] == 0:
new_list[0] = i
if i >= 2 and i < 3:
print("two:", i)
if new_list[1] == 0:
new_list[1] = i
if i >= 3:
print("three:", i)
new_list[2] = i
break
print("\n", new_list)
字符串
2条答案
按热度按时间9o685dep1#
使用numpy:
字符串
7nbnzgx92#
不确定它是最有效的,但使用numpy的列表理解效果很好:
字符串
输出[1.4、2.1、3.0]
基本上,我会创建一个数组的唯一权值列表,当大于1时:
np.unique(np.floor(arr[arr >= 1]))
然后循环通过它,选择输入数组的第一个元素,其中与flooded值的差值最接近0。