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