Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从另一个列表索引创建列表_Python_List_Indexing - Fatal编程技术网

Python 从另一个列表索引创建列表

Python 从另一个列表索引创建列表,python,list,indexing,Python,List,Indexing,是否有一种pythonic方法可以从另一个列表的索引创建列表?我正在尝试从另一个列表的索引创建列表。我听说enumerate()可以用来迭代给定列表的索引和值。但我真的不知道如何在我的案例中应用 在我的例子中,过程如下所示: list_1 = [11,10,7,0,3,5,8,1,4,6,9,2] 第二个列表应包含第一个列表的索引,但不包含索引0以外的下一个索引的索引。例如,对于包含值11的列表_1中的索引0,下一个值将是12,但它在列表_1中不存在,因此下一个值是0,这实际上是最小的值,因此

是否有一种pythonic方法可以从另一个列表的索引创建列表?我正在尝试从另一个列表的索引创建列表。我听说
enumerate()
可以用来迭代给定列表的索引和值。但我真的不知道如何在我的案例中应用

在我的例子中,过程如下所示:

list_1 = [11,10,7,0,3,5,8,1,4,6,9,2]
第二个列表应包含第一个列表的索引,但不包含索引0以外的下一个索引的索引。例如,对于包含值11的列表_1中的索引0,下一个值将是12,但它在列表_1中不存在,因此下一个值是0,这实际上是最小的值,因此列表_2中的索引0的值将是包含值0的列表_1的索引,在本例中为3。对于列表_1中的索引1,该值为10,因此列表_2中的索引1的值将是包含值11(10+1)的索引,在本例中为0。因此,列表_2为:

list_2 =[3,0,6,7,8,9,10,11,5,2,1,4]

此代码段应该满足您的要求(以pythonic/explicit的方式):


或者,您可以使用
index()
方法检索每个元素+1的索引:

[list_1.index(e+1) if e+1 in list_1 else list_1.index(0) for e in list_1]

你有一个“非pythonic”的解决方案吗?请发布您的代码。这个问题可以解释得更好,但它肯定是可以解决的。这个答案是正确的,但它可能比字典方法~O(n^2)慢。
[list_1.index(e+1) if e+1 in list_1 else list_1.index(0) for e in list_1]