- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想从与第一个元素上的其他元组匹配的元组中创建一个新的元组列表。当元组与第一个元素上的另一个元组匹配时,我还想将第三个元素添加到匹配的元组中。
数据示例(元组有 3 个字符串):
unique_3 = [(apple, banana, fruit),
(apple, banana, dessert),
(eggplant, fig, plant),
(eggplant, fig, purple),
(iris, jaguar, horse)]
我正在寻找的输出:
new_list =[(apple, banana, [fruit, dessert]),
(eggplant, fig, [plant, purple]),
(iris, jaguar, horse)]
我只需要匹配元组的第一个元素。所以我尝试过这个:
new_list= [next(i for i, v in enumerate(unique_3) if v[0] == any(v[0]))]
它返回 StopIteration 而没有结果,所以我在构建 new_list 方面还没有走得太远。
最佳答案
您可以使用groupby
根据每个元组的第一个元素对项目进行分组,
from itertools import groupby
unique_sorted = sorted(unique_3, key = lambda x: x[0])
group_list = []
for key, group in groupby(unique_sorted, lambda x: x[0]):
group_list.append(list(group))
new_list = [(x[0][0], x[0][1], [y[-1] for y in x]) for x in group_list]
在每次 for
迭代中,groupby
返回具有相同第一个元组元素 key
的元素组 group
。元素必须连续才能分组,因此原始列表在第一步中根据每个元组中的第一个值进行排序。
关于python - 将匹配的元组元素与其他元组的独特元素相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46876034/
对于 Prometheus 指标集合,如标题,我真的找不到只能通过 type Summary 完成的用例。 ,似乎它们都可以通过 type Histogram 以某种方式完成还。 让我们以请求并发度量
这个问题在这里已经有了答案: Ignore case while using duplicated (1 个回答) 关闭 9 个月前。 使用不区分大小写的 unique(tolower(x)) 删除
应用程序监控服务的一个有用功能是每次发生新的、独特的错误/问题/异常时发送警报(例如电子邮件)(即不是每次发生)。要么只是第一次,要么最多每次 X 次(一天或一周等)。例如,这可以通过 Visual
应用程序监控服务的一个有用功能是每次发生新的、独特的错误/问题/异常时发送警报(例如电子邮件)(即不是每次发生)。要么只是第一次,要么最多每次 X 次(一天或一周等)。例如,这可以通过 Visual
我想要相当于 DB2 中 MySql 的 GROUP_CONCAT 功能。 我尝试过 DB2 的 XML Aggrigate 函数来合并 murows。 SELECT a.ID, sub
我正在运行 python 数据库迁移脚本 (Flask-Migrate) 并添加了 alembic.ddl.imp import DefaultImpl 来解决第一组错误,但现在我收到以下错误。我正在
我有一个逗号分隔的文件“myfile.csv”,其中第 5 列是日期/时间戳。 (mm/dd/yyyy hh:mm)。 我需要列出所有包含重复日期的行(有很多) 我正在通过 cygwin 为 WinX
我使用的是 MySQL 5.7。 我有一个表格如下: -------------------------------------------------- | id | currentcy_id |
所以我有一个像这样的 ng-repeat: Join Ride /md-switch> 但是,每个 md-switch 都有相同的模型,因此当我在 Control
据我了解, Mongoose 预保存 Hook 在将文档插入集合之前但在验证发生之后触发。因此,如果一次验证失败,则不会调用预保存 Hook 。 就我而言,无论如何都会调用它们: 下面的简单代码的作用
如果我对我的目标文件执行此 grep,我会得到例如 275 作为结果。 但是我想学习 awk,所以在 awk 中尝试了这个: awk 'BEGIN { count=0 } /my pattern/
我是一名优秀的程序员,十分优秀!