我试图创建一个元组列表,其中元组内容是列表中的数字9和它前面的数字.

Input List:

myList = [1, 8, 9, 2, 4, 9, 6, 7, 9, 8]

Desired Output:

sets = [(8, 9), (4, 9), (7, 9)]

Code:

sets = [list(zip(myList[i:i], myList[-1:])) for i in myList if i==9]

Current Result:

[[], [], []]

推荐答案

更干净的Python 法:

>>> [(x,y) for x,y in zip(myList, myList[1:]) if y == 9]
[(8, 9), (4, 9), (7, 9)]

上面的代码在做什么:

  • zip(some_list, some_list[1:])将生成相邻元素对的列表.
  • 现在使用这个元组,在第二个元素等于9的条件下进行过滤.你完成了:)

Python-3.x相关问答推荐

为什么vs code返回错误—LocaleError:int对象没有属性where,但相同的代码运行在Google Colab上没有任何问题''''

如何绘制交叉验证的AUROC并找到最佳阈值?

我不能使用拆分来分隔数据

如何使用魔杖扭曲图像

如何将 WebDriver 传输到导入的测试?

移动所有列的数据帧值以使其单调递增

根据另一个数据帧中的位置从主数据帧中提取子序列

如何使用 django rest 框架在 self forienkey 中删除多达 n 种类型的数据?

如何使用 regex sub 根据列表中的变量替换字符

将变量传递给 Google Cloud 函数

PyQt:退出时没有错误消息(回溯)

获取比较多列的最大值并返回特定值

在带有 M1 芯片(基于 ARM 的 Apple Silicon)的 Mac 上安装较早版本的 Python(3.8 之前)失败

python setup.py egg_info mysqlclient

当 None 被传递时,如何将默认值应用于 python 数据类字段?

谁能给我一个 Python 3 中标准输入和标准输出的快速教程?

如何在 FastAPI 中的一条路由上捕获任意路径?

0 是 0 == 0(#evaluates 为真?)

Django Rest 框架 ListField 和 DictField

Django 教程 unicode 不起作用