python - 从符合特定条件的数字创建数字列表
问题描述
我想创建一个列表one_list
,其中只有以1
ie开头的数字的小数点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()
解决方案
为什么这么复杂?你可以简单地这样做:
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)
推荐阅读
- python - UnicodeDecodeError : 错误的位置
- python - 将 CURL 命令转换为 python 代码以从 Cloudflare API 获取数据
- android - 齐射中的 org.json.JSONException
- excel - VBA 和打印 Excel 工作簿
- java - Java - 如何复制 Java 应用程序 jar 文件?
- python - 从 2 个列表生成字典时出错
- postgresql - 使用 jsonb_insert 附加到 postgres 中的 jsonb 数组
- python - 从列中搜索行(&不是|)上的一组值
- linux - 如何从 tty 读取串行输入并将其写入 Linux 中的文件?
- php - PHP 简码产生意想不到的结果