![](/img/trans.png)
[英]Python tokenizing text: How do I turn a tokenized list into a string?
[英]How do I turn a string of numbers into a list on Python?
我想弄清楚文本文件中有多少个数字大于 0.1。 文本文件有 1001 个姓氏和数字,格式如下:
Doe 5
Anderson 0.3
Smith 6
我想出了如何分隔数字,但我在将数字字符串转换为列表时遇到问题,以便我可以将它们与 0.1 进行比较
这是我到目前为止所拥有的:
infile = open('last.txt')
lines = infile.readlines()
for line in lines:
items = line.split()
nums = (items[1])
另外,一旦我有了我的清单,我该如何将它与 0.1 进行比较?
假设lines
是一个字符串列表,每个字符串只包含一个数字,仅此而已。
result = sum(1 if float(x) > 0.1 else 0 for x in lines)
另一种非常相似的方法来做同样的事情:
result = sum(float(x) > 0.1 for x in lines)
从您的描述和代码片段来看,您似乎有一个文件,其名称以空格分隔,数字如下:
Name1 0.5
Name2 7
Name3 11
为了得到多少个数字大于 0.1 的总和,您可以执行以下操作:
result = sum(float(line.split()[1]) > 0.1 for line in lines)
其他答案告诉您如何计算大于 0.1 的出现次数,但您可能希望将数字列在列表中,以便将它们用于其他目的。 为此,您需要对代码进行小幅修改:
with open('last.txt', 'r') as infile:
lines = infile.readlines()
nums = []
for line in lines:
items = line.split()
nums.append(float(items[1]))
这给你一个列表nums
所有号码从您的文件。 请注意,我还使用了Python上下文管理器(与调用with
)来打开它保证一旦你不再使用它,它正确地关闭该文件。
现在您仍然可以计算nums
大于 0.1 的值的出现次数:
sum(1 if x > 0.1 else 0 for x in nums)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.