Python列表从第二维中选择,其中第一维=条件

上帝是宇航员

假设我有一个二维列表

[[00000.ppm,11],[00001.ppm,40],[00001.ppm,38],[00001.ppm,13],00002.ppm,39],[00003.ppm,4]]

我需要从列表的第二个维度中选择列表中的每个值,其中file =“ anything.ppm”

因此,当我搜索00001.ppm时,将获得值“ 40”,“ 38”,“ 13”作为输出

我也需要将这些值分开,以便我可以比较它们,例如

_class=13
if (value==_class): do something

我在想是否还有其他方法,而不仅仅是遍历整个列表的代价高昂,因为事实上,文件是有序的,它们的名称始终是int增量。

我只是不知道每个文件有多少个。

为此,将.csv文件读取到列表中可能不是一个好主意。

.csv格式

00000.ppm,11
00001.ppm,40
00001.ppm,38
00001.ppm,13
00002.ppm,39
00003.ppm,4
布拉德·所罗门

我在想是否还有其他方法,而不仅仅是遍历整个列表的代价高昂,因为事实上,文件是有序的,它们的名称始终是int增量。

您可以利用文件对象是可迭代的这一事实,而不用将整个数据集读取到列表中并进行遍历,并在从00001过渡到00002时停止从中读取数据。

def read_partial(file, key='00001.ppm'):
    with open('obj.csv') as f:
        found = False
        for line in f:
            if line.startswith(key):
                yield int(line.split(',')[-1].strip())
                found = True
            else:
                if found:
                    break 



>>> list(read_partial('obj.csv'))
[40, 38, 13]

同样,这假定0000x.ppm字段按照您的问题进行排序。

obj.csv:

00000.ppm,11
00001.ppm,40
00001.ppm,38
00001.ppm,13
00002.ppm,39
00003.ppm,4

如果您确实想遍历列表,可以使用[b for a, b in mylist if a == '00001.ppm']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python二维条件

根据条件从二维列表创建列表

Python:根据某些条件从另一个一维数组替换二维数组中的值

Python numpy按条件过滤二维数组

如何绘制二维条件函数

打印带条件的二维数组

使用一维数组上的条件掩盖二维数组的最佳方法

从一维数组和带条件函数的高效二维 numpy 数组构造

用于根据条件从列表中生成二维列表的 Pandas 代码

根据不同二维数组中的条件更新numpy二维数组

Java:如何检查二维列表/数组中的布尔条件?

如何根据某些条件将二维数组转换为列表(如列)

如何在二维数组的列表理解中具有多个条件

如何在二维列表中找到两个特定条件?

我想做一个条件,如果我从第一个下拉列表中选择这个项目,它会只显示我在第二个下拉列表中选择的项目

查找满足条件的二维numpy数组的索引

如何处理以二维数组编写的条件

创建对象时如何处理二维条件?

如何对二维条件查找进行numpy化?

二维数组根据条件替换值

如何使用条件映射二维数组?

如何在没有迭代的情况下从满足条件的二维数组中获取第一列的索引?

Python:快速订阅满足条件的二维数组中的元素

从第二个列表中存在条件的列表中选择

检索python中二维字典的唯一键(第二维)?

Python二维列表

Python如何获取二维列表中的每个第一个元素

numpy:如何根据一维数组中的条件从两个2D数组中选择行?

使用一维索引数组从矩阵或张量中选择项目以在 Torch 中获取一维或二维张量