繁体   English   中英

如何在 Python 上将一串数字转换为列表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM