好吧,我有这个例子:
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]]
Run Code Online (Sandbox Code Playgroud)
这是一份清单清单.我想保留每个子列表的前5个点.如果这是一个简单的列表我会打电话mylist[:5],这就是全部.现在,我能想象的最简单的方法是遍历mylist并将每个子列表的前5个点复制到一个新列表中.
newlist = []
for i in mylist:
newlist.append(i[:5])
Run Code Online (Sandbox Code Playgroud)
但如果我的列表长度为10.000+,会发生什么.你知道更快的方式吗?
好吧,你可以使用列表理解来做同样的事情,所以至少它会变得更短.
return [x[:5] for x in mylist]
Run Code Online (Sandbox Code Playgroud)
或者,如果使您的函数成为生成器,您还可以生成单个元素:
for x in mylist:
yield x[:5]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1754 次 |
| 最近记录: |