Python:使用嵌套for循环生成子is的索引

2024-09-29 19:20:35 发布

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

我有一个列表student

student = ["test_name","1","6"]

我得到了read data子列表:

read_data = [["test_name","1","2","5","9"],["test_name_2","1","5","2","10"]]

我编写了以下嵌套循环来返回read_dataifstudent[0] == x[0]中的子列表(称为x)的索引:

lst = [read_data.index(x) for x in read_data if x[0] == student [0]]

因此,我在read data中循环遍历每个项,并且(如果x[0] == student[0])子列表的索引应该存储在lst。你知道吗

当我尝试在列表的索引参数中使用它来插入数据时,如下所示:

read_data[read_data.index(x) for x in read_data if x[0] == student[0]].insert(2,student[0])

我得到一个错误,说生成器不能用于索引-为什么不能? 很明显,我可以只使用存储在lst中的整数,但这似乎效率低下—当然有一种方法可以在一行中实现这一点。你知道吗

有没有更好的方法来检查字符串是否在read_data的任何子列表中并获取该子列表的索引?你知道吗


Tags: 方法nameintest列表forreaddata
1条回答
网友
1楼 · 发布于 2024-09-29 19:20:35

我不知道你为什么要这样做,但是你需要把括号放在列表的周围,然后像这样得到第一个匹配的索引:

read_data[[read_data.index(x) for x in read_data if x[0] == student[0]][0]].insert(2, student[0])

记住,如果列表理解产生一个空列表,您将遇到一个IndexError。你知道吗

相关问题 更多 >

    热门问题