我有一个两项元组的列表,我想将它们转换为两个列表,其中第一个列表包含每个元组中的第一项,第二个列表包含第二项.

For example:

original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# and I want to become...
result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])

有没有一个内置函数可以做到这一点?

推荐答案

zip是它自己的反面!只要你使用特殊操作员.

>>> zip(*[('a', 1), ('b', 2), ('c', 3), ('d', 4)])
[('a', 'b', 'c', 'd'), (1, 2, 3, 4)]

其工作方式是使用以下参数调用zip:

zip(('a', 1), ('b', 2), ('c', 3), ('d', 4))

…除了参数被直接传递到zip(在转换成元组之后),所以不必担心参数的数量变得太大.

Python相关问答推荐

为什么Pydantic在我申报邮箱时说邮箱丢失

如何循环循环的每个元素并过滤掉Python rame中的条件

在for循环中保存和删除收件箱

如何在Python中增量更新DF

使用argsorted索引子集索引数组

列表上值总和最多为K(以O(log n))的最大元素数

Python会扔掉未使用的表情吗?

理解Python的二分库:澄清bisect_left的使用

在Google Colab中设置Llama-2出现问题-加载判断点碎片时Cell-run失败

未删除映射表的行

删除所有列值,但判断是否存在任何二元组

如何访问所有文件,例如环境变量

Pandas - groupby字符串字段并按时间范围 Select

用Python解密Java加密文件

根据二元组列表在pandas中创建新列

Python虚拟环境的轻量级使用

无法使用requests或Selenium抓取一个href链接

Pandas—合并数据帧,在公共列上保留非空值,在另一列上保留平均值

如何根据一列的值有条件地 Select 前N组?

在单个对象中解析多个Python数据帧