按索引将列表映射到列表(Python)

fri*_*hax 1 python mapping list binning

我正在寻找一种有效的方法来映射价值列表

x = [1,2,3,4,5,6,7,8,9] 
Run Code Online (Sandbox Code Playgroud)

例如,到另一个列表,包含相同总范围的值列表

z = [[1,2,3], [4,5,6], [7,8,9]]. 
Run Code Online (Sandbox Code Playgroud)

我需要知道的是基本上索引x中的值对应于z.x[0]=1将对应于z[0],因为它落在z的第一个bin中,其中x[7]=8对应于z[2],因为它落在第三个bin中.

如何为每个x值标识z的子列表的索引?在我的情况下,x有大约50,000个值,z有大约5,000个子列表,我有很多这些列表,所以我正在寻找一种尽可能快的方法.

Ash*_*ary 5

你可以在这里使用dict:

>>> x = [1,2,3,4,5,6,7,8,9]
>>> z = [[1,2,3], [4,5,6], [7,8,9]]
>>> dic = {y :i for i,a in enumerate(z) for y in a}
>>> dic[7]
2
>>> dic[8]
2
>>> dic[1]
0
Run Code Online (Sandbox Code Playgroud)