首页 > 解决方案 > 从符合特定条件的数字创建数字列表

问题描述

我想创建一个列表one_list,其中只有以1ie开头的数字的小数点1.3出现0.3在该列表中。当我在下面运行我的代码时,它错过了1.7并且只打印了0.2. 我怎样才能让它循环?我只想在列表中有小数部分,以便one_list = 2, 7.

data = [1.2, 2.3, 3.4, 4.7, 5.1, 6.8, 7.2, 8.3, 9.2, 3.4, 1.7]
one_list = []
while True:
    for i in data:
        integer = i // 1
        j = i % 1
        decimal = round(j, 1)

        if integer == 1:
            one_list.append(decimal)
            print(one_list)
            quit()

标签: pythonlist

解决方案


为什么这么复杂?你可以简单地这样做:

data = [1.2, 2.3, 3.4, 4.7, 5.1, 6.8, 7.2, 8.3, 9.2, 3.4, 1.7]
one_list = []

for i in data:
    if i - 1 >= 1 or i-1 < 0:
        continue
    one_list.append(round(i-1, 1) * 10) # Edit: Added * 10 after the question was updated.
    # one_list.append(int(round(i-1, 1) * 10)) if you want to have it as an integer or
    # one_list.append(str(int(round(i-1, 1) * 10))) if you want to have it as a string

print(one_list)

推荐阅读