在csv lis中查找位置

2024-06-18 15:26:24 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下CSV文件

1.41, 123456
1.42, 123456
1.43, 123456

我想根据特定行值是否大于或等于任意输入值来查找第0行中值的“位置”/位置,即在本例中为“1.41、1.42、1.43”。在

例如,如果输入值是1.42,我们将返回位置0和1;如果输入值是1.4,则返回0、1和2。同样,如果值为1.45,我们不会返回任何位置。以下是我所拥有的:

^{pr2}$

只是为了得到

0
1
2
3
0
1
2
3
0
1
2
3

所以我用

for i in xrange(len(x)):
if x[i] >=2 :
    print i

但我还是得到了同样的位置值。谁能指引我正确的方向吗?在


Tags: 文件csvinforlenif方向print
1条回答
网友
1楼 · 发布于 2024-06-18 15:26:24

据我所知,这符合你的要求。。。在

#!/usr/bin/env python

import csv

value = 1.42

out = open("test.csv","rU")
dataf=csv.reader(out, delimiter=',')
matches = [float(row[0]) >= value for row in dataf]
matches.reverse()

for i,m in enumerate(matches):
    if m: 
        print i

matches是一个布尔值列表,显示每行的第一列是否大于value。看起来您想从下至上排序,所以我reversed列表。如果第一列中的值大于或等于value,则循环将打印(反转)列表的索引。在

value = 1.42
输出:

^{pr2}$

value = 1.4
输出:

0
1
2

value = 1.45
没有输出。在

相关问题 更多 >