Skip to main content
 首页 » 编程设计

python之返回列表列表的子列表

2025年05月04日17lyhabc

好吧,我有这个例子:

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

这是一个列表列表。我想保留每个子列表的前 5 个点。如果它是一个简单的列表,我会调用 mylist[:5],仅此而已。现在,我能想到的最简单的方法是遍历 mylist 并将每个子列表的前 5 个点复制到一个新列表中。

newlist = [] 
for i in mylist: 
    newlist.append(i[:5]) 

但是如果我的列表长度超过 10.000 会发生什么。你知道更快的方法吗?

请您参考如下方法:

好吧,您可以使用列表理解来做同样的事情,这样至少它会变得更短一些。

return [x[:5] for x in mylist] 

或者,如果将您的函数改为生成器,您也可以生成单个元素:

for x in mylist: 
    yield x[:5]