在python中列出过滤

时间:2013-11-27 21:54:01

标签: python python-3.x

我的程序将导入由用户创建的文件,其中包含最多15行文本(下面的示例)

#ID #value1 # value2
445 4 9000 
787 2 4525 
405 4 3352 
415 1 2854 
455 2 5500 

ř 程序然后过滤掉#value 1大于2且#value 2大于3000的所有行并打印出#ID,忽略其余的行。

这是我到目前为止所做的事情

filename = ('input.txt')
infile = open(filename, 'r')
list_id = []
list_value1 = []
list_value2 = []
masterlist = []
for line in infile:
id, value1, value2 = line.split()
list_id.append(id)
list_value1.append(value1)
list_value2.append(value2)
masterlist.append(list_id)
masterlist.append(list_value1)
masterlist.append(list_value2)

#filtering part
sort = [i for i in masterlist[1] if i > 2 ] and [p for p in masterlist[2] if p > 3000]

#do something here to print out the ID of the filtered lines

1 个答案:

答案 0 :(得分:3)

以您的代码为出发点:

filename = ('input.txt')
infile = open(filename, 'r')
ids = []
for line in infile:
    id, value1, value2 = line.split()
    if int(value1) > 2 and int(value2) > 3000:
        ids.append(id)

根据需要对非整数值进行异常处理。