【问题标题】:Unpack list of list python [duplicate]解包列表python列表[重复]
【发布时间】:2021-08-14 12:32:17
【问题描述】:

我知道这已经在其他线程中被问过,但我记得有一种更简洁的方法:

所以这是我知道如何解包的代码:

list = [[1, "tom"], [4, "jane"], [2, "peter"], [5.5, "Ursala"]]
points=[p for p, n in list]
name=[n for p, n in list]

所以我知道这就是我从列表中提取列表的方式

但我记得有一些更简洁的方法可以做到这一点。 有点像。

points,name = list

但是它给了我错误:太多的值需要解压(预期为 2)

这是字典的方法吗?不适用于列表列表?

【问题讨论】:

  • 不要。采用。 list。作为。多变的。名字。
  • 不要将你的变量命名为list;这是一个内置的类名。

标签: python


【解决方案1】:

使用 zip 获取元组,使用 map 将这些元组转换为列表

* 用于解压可迭代对象

l = [[1, "tom"], [4, "jane"], [2, "peter"], [5.5, "Ursala"]]
points,name = map(list, zip(*l))
# just to point out numpy is not only for numbers
import numpy as np
l = [[1, "tom"], [4, "jane"], [2, "peter"], [5.5, "Ursala"]]
ln = np.array(l)
points, name = ln[:, 0], ln[:, 1]

PS: list 已经被 python 保留使用其他一些未保留的名称

【讨论】:

猜你喜欢
  • 2016-03-18
  • 2015-10-16
  • 2021-10-06
  • 2013-01-26
  • 2011-06-15
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
相关资源
最近更新 更多