Skip to main content
 首页 » 编程设计

python之在列表中切片列表

2025年05月04日15jiqing9006

我试图在 python 中分割一个列表,以便我得到两个单独的列表:一个包含键,一个包含值。我的列表如下所示:

[(b'a', 2), (b'surprise,', 1), (b'but', 1), (b'welcome', 1), (b'one', 1), (b'for', 1), (b'sure.', 1)] 

我在编码方面相对较新,所以我只是想知道我如何能够做这样的事情。

请您参考如下方法:

使用zip解压数据:

>>> l = [(b'a', 2), (b'surprise,', 1), (b'but', 1), (b'welcome', 1), (b'one', 1), (b'for', 1), (b'sure.', 1)] 
>>> [*zip(*l)] # similar to list(zip(*l)) 
[(b'a', b'surprise,', b'but', b'welcome', b'one', b'for', b'sure.'), (2, 1, 1, 1, 1, 1, 1)] 

如果您想要列表而不是元组,请使用推导式:

>>> [list(x) for x in zip(*l)] 
[[b'a', b'surprise,', b'but', b'welcome', b'one', b'for', b'sure.'], [2, 1, 1, 1, 1, 1, 1]] 

为了修复 l 是否为空列表,您可以使用 或 表达式的组合:

>>> keys, values = [*zip(*[])] or ([], []) 
>>> keys 
[] 
>>> values 
[]