查找值所在的行/子列表

时间:2014-06-23 19:37:42

标签: python

我试图找出一个值在哪一行并且没有太多运气。我已经找到了许多在stackoverflow上使用列和行的例子,但是我们无法找到它,可能是因为它非常容易,我只是没有得到它。任何人都可以帮助我。

例如,我有一个从0到99开始的整数列表,分为10行和10列。假设我不知道列表中值的模式,值17驻留在哪一行?

列表就像这样

[[0,1,2,3,4,5,6,7,8,9], [10,11,12,13,14,15,16,17,18,19], ...] 

1 个答案:

答案 0 :(得分:2)

对于这个答案,我假设您要在列表列表中找到一个值的子列表,其中内部列表中的值不遵循特定模式,这将使子列表的计算值为琐碎的。

假设我们有一个列表lst

[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11], [7, 12, 13]]

其中每个子列表都是“行”。如果你想知道一个值在哪个子列表/行中(让我们为演示取find == 7),你可以这样做:

>>> find = 7
>>> [x[0] for x in enumerate(lst) if find in x[1]]
[2, 4]

find在行/子列表2和4中,从零开始计数。

如果您想知道行的行,可以发出:

>>> [(x[0],y[0]) for x in enumerate(lst) for y in enumerate(x[1]) if y[1] == find]
[(2, 1), (4, 0)]

find位于第2行第1列,第4行第0列。