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] 删除。
我来说两句