2016-10-07 64 views
1

我想弄清楚文本文件中有多少數字大於0.1。 文本文件有以下格式1001個最後的姓名和電話號碼:如何將一串數字轉換爲Python中的列表?

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?

回答

4

假設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) 
0

從你的描述,以及代碼片段,你似乎有,有一個空格分隔的名字,像這樣數量的文件:

Name1 0.5 
Name2 7 
Name3 11 

爲了瞭解有多少數量大於0.1的總和,你可以做到以下幾點:

result = sum(float(line.split()[1]) > 0.1 for line in lines) 
0

其他答案告訴您如何計算大於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一起調用)來打開該文件,以確保在您不再使用它時可以正確關閉該文件。

現在,你仍然可以指望大於0.1的值的出現在nums

sum(1 if x > 0.1 else 0 for x in nums) 
相關問題