Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 - Fatal编程技术网

Python 从具有重复值的列表中理解嵌套列表

Python 从具有重复值的列表中理解嵌套列表,python,list,Python,List,要获得[[1,1],[2,2],[3,3,3],[4,4,4],[5,5,5,5,5]。 从旧列表=[1,1,2,2,3,3,4,4,4,5,5,5,5,5,5] 我找到了这个答案: new_list = [] for value in old_list: if new_list and new_list[-1][0] == value: new_list[-1].append(value) else: new_list.append([value

要获得
[[1,1],[2,2],[3,3,3],[4,4,4],[5,5,5,5,5]。

从旧列表=
[1,1,2,2,3,3,4,4,4,5,5,5,5,5,5]

我找到了这个答案:

new_list = []
for value in old_list:
    if new_list and new_list[-1][0] == value:
        new_list[-1].append(value)
    else:
        new_list.append([value])
我试图理解新列表[-1][0]的含义 当我试图逃跑时,我感到困惑

new_list = []
new_list[-1] # shows index out of bounds
并且
new_list和new_list[-1][0]
在if语句下不会产生任何错误


新建列表[-1][0]
在此执行的操作。

新建列表[-1][0]
正在检查列表最后一个元素中的第一个值
新建列表

示例:

为了
new_list=[[1,1],[2,2],[3,3,3],[4,4,4],[5,5,5,5]

如果您尝试
新建列表[-1][0]
,您将得到值
5

[-1]
获取列表的最后一个元素,
[0]
提供第一个值


因此,
[-1]
获取您的
[5,5,5,5]
,然后[0]给出您的
5

新列表[-1][0]
检索
新列表的最后一个元素,它本身就是一个列表,并获取其第一个元素


new\u list和new\u list[-1][0]==value
短路,因此如果列表为空,它不会尝试访问最后一个元素。

假设我们在正常列表上尝试了类似的操作

new_list = [1,2,3]
print(new_list[-1][0])
我们将收到一个错误

    print(new_list[-1][0])
TypeError: 'int' object is not subscriptable
但是,如果我们尝试在一个列表的列表上建立索引,它将起作用

new_list = [[1,2,3],[4,5,6]]
print(new_list[-1][0])
无错误,输出为空

4
让我们看看
列表[-1][0]
。基本上,[-1]将获得列表中的最后一个元素。在这种情况下,它将为我们提供更大列表中的最后一个列表。然后[0]将为我们获取列表中的第一个元素。所以顺序是
[4,5,6]
&
4