我在python jupyter笔记本中有一个文本文件。问题是“计数大于0.1的数字”。我不知道如何为此编写代码。文本文件具有名称和整数。我想我可以为此创建两个列表,但不确定如何获得大于1.的数字的输出。
这是我到目前为止编写的代码。
def ans9(file):
infile = open(file)
contents = infile.read().split()
infile.close()
答案 0 :(得分:1)
如果您只需要算一算,这样的方法就可以工作:
def ans9(file):
with open(file, 'r') as infile:
count = 0
for line in infile:
if float(line.split('\t')[1]) > 0.1:
count += 1
return count
如果要拆分表示数据:
def ans9(file):
with open(file, 'r') as infile:
items = []
for line in infile:
item = line.split('\t')
if float(item[1]) > 0.1:
items.append(item)
return items
将返回一个类似于[["a", "0.22"], ["b", "0.11"]]
的列表,您可以很容易地遍历它。
答案 1 :(得分:0)
with open('a.txt', 'r') as f:
data = []
for line in f:
data.append(float(line.split()[1]))
print(len([i for i in data if i > 0.1]))
# prints 2 for the following data:
Smith 0.88
Johnson 0.68
Brown 0.04
答案 2 :(得分:0)
我不同意tgikal对列表列表的使用。在这种情况下,正确的数据结构可能是字典(是的缩进看起来很有趣,但符合PEP-8,如果忽略它们,它的读法类似于英语):
filename = 'people.txt'
with open(filename) as file:
filtered_users = {user:score
for user, score in (line.split()
for line in file
if line)
if score > 0.1}
print(len(filtered_users))