根据它们的值和索引从两个列表中获取元组列表

date = ['21 Jul 2021', False, False, '18 Jul 2021', False, False, '15 Jul 2021', False, False, '12 Jul 2021', False, False, '09 Jul 2021', False, False, '07 Jul 2021', False, False, '04 Jul 2021']

teams = [False, 'Utah Jazz - Los Angeles Clippers', 'Milwaukee Bucks - Phoenix Suns', False, False, 'Phoenix Suns - Milwaukee Bucks', False, False, 'Milwaukee Bucks - Phoenix Suns']

我有这两个列表,我想制作一个元组列表(日期,团队),其中团队值是正在比赛的团队(不是 False),日期值是;从团队值的索引开始,左侧的第一个值对应于实际日期。

我想有一种更简单的方法来解决问题,但我找不到。结果应该是:

date_teams = [('21 Jul 2021','Utah Jazz - Los Angeles Clippers'), ('21 Jul 2021', 'Milwaukee Bucks - Phoenix Suns'), ('15 Jul 2021', 'Milwaukee Bucks - Phoenix Suns') ... ]

注意:当他们对列表进行排序时,不能摆脱这些False陈述(同一天可以进行两场比赛)

绿斗篷人

处理此类问题的常用方法是在迭代列表时引入一个中间变量来保存最后一个有效日期。

date = ['21 Jul 2021', False, False, '18 Jul 2021', False, False, '15 Jul 2021', False, False, '12 Jul 2021', False, False, '09 Jul 2021', False, False, '07 Jul 2021', False, False, '04 Jul 2021']

teams = [False, 'Utah Jazz - Los Angeles Clippers', 'Milwaukee Bucks - Phoenix Suns', False, False, 'Phoenix Suns - Milwaukee Bucks', False, False, 'Milwaukee Bucks - Phoenix Suns']

last_date = None
date_teams = []
for (d, t) in zip(date, teams):
    if d:
        last_date = d
    if t:
        date_teams.append((last_date, t))

# [('21 Jul 2021', 'Utah Jazz - Los Angeles Clippers'), ('21 Jul 2021', 'Milwaukee Bucks - Phoenix Suns'), ('18 Jul 2021', 'Phoenix Suns - Milwaukee Bucks'), ('15 Jul 2021', 'Milwaukee Bucks - Phoenix Suns')]

请注意,它date有 19 个元素,而teams只有 9 个元素,并且zip()会截断较长的列表以支持较短的列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从元组中获取相同的元素并返回两个索引列表

查找两个列表之间的差异并在列表中打印它们的位置和值

根据两个索引中任一索引的值从两个列表中删除项目

如何从用户输入中获取两个列表的元组?

Python 检查两个列表中的重复值和空值并映射它们

根据元组列表创建一个列表(值,索引)

根据索引从两个列表中创建一个列表列表

从两个列表中制作元组

从两个元组列表中取两个值并相乘

将列表的两个索引值连接成 python 列表中的单个索引值

根据两个元素对元组列表进行排序

根据两个元素对元组列表进行排序

在两个列表中,如何根据第一个列表值获取第二个列表的值?

根据列表中列表的大小返回两个列表

从元组列表创建两个列表

如何从列表中的每个元素都是元组的列表中获取元组第 0 个索引处的最大值?

熊猫:如何根据表示两个列中值的元组列表从数据框中删除行?

如何在Elixir中根据两个元组的列表创建地图

根据第二个索引的最大值删除列表中的元组

如何从存储在元组列表列表中的两个元素元组中制作两个列表

在迭代两个列表的同时获取列表列表中的项目以与值进行比较

检查两个单词中的一个是否存在并在列表中获取它们的索引,当它们中的一个可以存在于 python 3 的列表中时

遍历两个列表以在python中获取元组中的元素

在一个元组中添加两个列表

根据内部列表中的字段对Java中的两个嵌套列表进行排序和分组

根据相同索引连接两个列表

根据其他两个列表中的值创建列表

根据另一个列表中的值从两个列表创建一个列表

迭代两个列表中的每个值,然后将它们放入公式中