Python 元组列表到 int 列表

2024-07-01

所以我有x=[(12,), (1,), (3,)](元组列表)我想要x=[12, 1, 3](整数列表)以最好的方式可能?你能帮忙吗?


你没有说“最好”是什么意思,但大概你的意思是“最Pythonic”或“最易读”或类似的东西。

F3AR3DLEGEND 给出的列表理解可能是最简单的。任何知道如何阅读列表推导式的人都会立即知道它的含义。

y = [i[0] for i in x]

但是,通常您并不真正需要列表,只需要可以迭代一次的列表。如果你有十亿个元素x,构建一个十亿元素y一次只迭代一个元素可能是一个坏主意。因此,您可以使用生成器表达式:

y = (i[0] for i in x)

如果您更喜欢函数式编程,您可能更喜欢使用map。缺点是map是你必须向它传递一个函数,而不仅仅是一个表达式,这意味着你要么需要使用lambda函数,或itemgetter:

y = map(operator.itemgetter(0), x)

在Python 3中,这相当于生成器表达式;如果你想要一个list,将其传递给list。在Python 2中,它返回一个list;如果你想要一个迭代器,请使用itertools.imap代替map.

如果您想要一个更通用的扁平化解决方案,您可以自己编写一个,但它总是值得一看itertools http://docs.python.org/2/library/itertools.html#recipes对于此类通用解决方案,实际上有一个名为flatten用于“展平一层嵌套”。因此,将其复制并粘贴到您的代码中(或pip install more-itertools),你可以这样做:

y = flatten(x)

如果你看看如何flatten是如何实现的,然后是如何实现的chain.from_iterable是如何实现的,然后是如何实现的chain实现后,您会注意到您可以用内置函数编写相同的东西。但何苦呢,当flatten会更具可读性和明显性吗?

最后,如果您想将通用版本简化为嵌套列表理解(当然,或生成器表达式):

y = [j for i in x for j in i]

然而,嵌套列表推导式在写作和阅读中都很容易出错。 (请注意,F3AR3DLEGEND,即首先给出最简单答案的同一个人,也给出了嵌套理解并弄错了。如果他无法完成,你确定要尝试吗?)对于非常简单的情况,他们'还不错,但我仍然认为flatten更容易阅读。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 元组列表到 int 列表 的相关文章

  • 持久子进程.Popen 会话

    我正在尝试运行一个命令 然后在同一环境中运行另一个命令 比如说 如果我在第一个命令中设置环境变量 我希望它可用于第二个命令 我试过这个 import subprocess process subprocess Popen echo test
  • 传递到 Flask 的可能路线列表?

    我正在学习 Flask 有一个关于动态路由的问题 是否可以传入接受的路由列表 我注意到any转换器具有潜力 但很难找到使用中的示例 基本上我有不同的端点组 它们应该在它们之间触发相同的操作 这就是我的意思 cities New York L
  • 如何使用 TfIdfVectorizer 通过 SciKitLearn 对文档进行分类?

    以下示例展示了如何使用 Sklearn 20 新闻组数据训练分类器 gt gt gt from sklearn feature extraction text import TfidfVectorizer gt gt gt categori
  • Python pandas - 根据集体 NaN 计数删除组

    我有一个基于不同气象站的多个变量 温度 压力等 的数据集 stationID Time Temperature Pressure 123 1 30 1010 5 123 2 31 1009 0 202 1 24 NaN 202 2 24 3
  • 使用多处理或线程加速单个任务

    是否可以使用多处理 线程来加速单个任务 我的直觉是答案是否定的 以下是我所说的 单一任务 的示例 for i in range max pick random choice on off both 当参数为 10000000 时 在我的系统
  • 使用 Numpy 对多维数组进行切片/索引

    我有 3 个 4x4 数组 矩阵 使用以下命令创建 arr np linspace 1 48 48 reshape 3 4 4 矩阵如下所示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2
  • 从图像中读取文本

    关于将这些图像转换为文本有什么建议吗 我正在使用 pytesseract 除了这个之外 它在大多数情况下都工作得很好 理想情况下 我会准确地读取这些数字 最坏的情况我可以尝试使用 PIL 来确定 左边的数字是否为零 从左边开始 找到第一个白
  • numpy 不规则跨步数组

    引用文档 http docs scipy org doc numpy reference arrays ndarray html internal memory layout of an ndarray关于内存中的 numpy 数组结构 N
  • ModuleNotFoundError:没有名为“discord_slash”的模块[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 I m trying to install a module called discord slash https py
  • 为什么追加会覆盖列表?

    我正在尝试 hackerrank 的一些问题并遇到了这个问题https www hackerrank com challenges list com经理 问题 https www hackerrank com challenges list
  • 在heroku上安装pdftotext库

    pdftotext 库是requirements txt 中的要求 在尝试推送到 heroku 时 出现以下错误 remote Running setup py install for pdftotext started remote Ru
  • 使用 plt 在热图上绘制梯度箭头

    我正在尝试绘制箭头以可视化热图上的梯度 这是我到目前为止的代码 import matplotlib pyplot as plt import numpy as np function to plot lambda x y x y 2 hor
  • SQLalchemy“load_only”不只加载指定的列

    我正在尝试从带有 sqlalchemy 的表中选择列的子集load only功能 不幸的是 它似乎不仅仅返回函数调用中指定的列 具体来说 它似乎还获取主键 在我的例子中 是一个 auto increment id 字段 一个简单的例子 如果
  • Django 和原始 Python 之间的性能

    我想知道使用纯 python 文件制作网页和使用 Django 之间的性能差异是什么 我只是想知道两者之间是否有显着差异 谢谢 Django 是纯Python 因此每个类似语句或表达式的执行时间将是相同的 需要理解的是 在进行 Web 开发
  • 抓取框架 NTSCtoUSB 加密狗、opencv2、python 包装器

    Context 我一直在研究 opencv2 的 python 包装器 我想尝试一些想法并使用类似于汽车 后视 摄像头的广角摄像头 我从一辆报废的撞车上得到了一根 它有 4 根电线 我从电线的颜色编码中进行了有根据的猜测 将其连接起来 以便
  • 使用后禁用按钮

    最近我决定重写我的不和谐机器人并添加按钮 到目前为止我遇到的主要问题是我无法禁用按钮就在被按下之后人们被告知是关于button disabled True实际上 它会禁用该按钮 但它只是将其发送为禁用状态 因此永远无法按下它 我想要的是能够
  • 如何加快读取压缩 HDF5 文件的速度

    我有几个大的 HDF5 文件存储在 SSD 上 lzf 压缩文件大小为 10 15 GB 未压缩大小为 20 25 GB 将此类文件的内容读入 RAM 进行进一步处理每个文件大约需要 2 分钟 在此期间 仅使用一个核心 但达到 100 所以
  • 相当于 C++ 中用于缓冲读取的 python 生成器

    Guido Van Rossum 在此展示了 Python 的简单性article http neopythonic blogspot com 2008 10 sorting million 32 bit integers in 2mb h
  • XPath 错误:[contains(text()="something")]' 不是有效的 XPath 表达式

    在观看了关于 XPath 的非常基本的教程之后 我第一次使用 selenium 构建一个应用程序 该应用程序包含卡的奖金计算器 我写了这段代码 from selenium webdriver import Chrome from webdr
  • Pandas:获取重复索引

    给定一个数据帧 我想获取重复的索引 这些索引在列中没有重复的值 并查看哪些值不同 具体来说 我有这个数据框 import pandas as pd wget https www dropbox com s vmimze2g4lt4ud3 a

随机推荐