我有一个包含很多行的文件,每行都有超过 20 个数值,例如:
123 1 18 180776 4303656 1605 16468 0 51429 24230 0 0 0 4 8 0 8710 14705 1836 1 4 95 0 24538 0 187860 4264028 449 4711 0 2537 2537 0 0 5 0 0 0 6138 12880 1590 1 22 76 ...
我愿意:
- 读一行
- 将它保存在一些 python 数据类型中(什么是最好的?)
- 对上一行中的每个数字进行一些操作,例如:
- 检查是否不高于某某(并保存结果)
- 检查是否低于某某(并保存结果)
- 计算它的长度(位数)(并保存结果)
- 将它与同一列中的前一个数字进行比较 -
所以在一行(带有数字)之后我应该有:
- 存储每个数字
- 存储每个数字的附加属性
每个数字都与同一列中的前一个数字进行比较,存储结果,但我可以忘记上一行。
哪种数据类型最适合存储上述数据?
请您参考如下方法:
通常你会为此使用一个列表
当您将一行读入变量时,说 row
row.split()
会给你一个 list 但每个元素都是一个字符串,你需要数字。您可以使用这样的列表推导式获取数字列表(看起来它们都是整数)
[int(x) for x in row.split()]
您还可以使用列表理解来与 sth 进行比较
这只过滤 < sth
的项目[int(x) for x in row.split() if int(x)<sth]
这将返回一个 bool 列表,其中 True 表示相应的项目是 <sth
[int(x)<sth for x in row.split()]
