为了账号安全,请及时绑定邮箱和手机立即绑定

如何仅在满足条件时压缩 2 个列表中的项目 - python

如何仅在满足条件时压缩 2 个列表中的项目 - python

小怪兽爱吃肉 2021-11-30 10:49:03
当我有两个列表时:list1 = ['course1', 'course2', 'course3', 'course4', 'course5'] list2 = [12, 3, 3, 4, 5]如果满足条件,我只想将索引列表项压缩在一起。否则对于列表索引项:0
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

我建议使用列表理解来缩短版本:

[x for x in zip(list1, list2) if x[1] >= 5.5]


查看完整回答
反对 回复 2021-11-30
?
青春有我

TA贡献1784条经验 获得超8个赞

如果你想获得一个列表的压缩列表出来list1,并list2用条件的项目list2应该是>=5.5,那就试试这个:

list3 = [[i,j] for i,j in zip(list1, list2) if j>=5.5]

输出

[['course1', 12]]


查看完整回答
反对 回复 2021-11-30
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

忘记 zip 并创建您自己的解决方案:


list1 = ['course1', 'course2', 'course3', 'course4', 'course5']

list2 = [12, 3, 3, 4, 5]



def zip_condition(list_a, list_b, func):

    iter_a = iter(list_a)

    iter_b = iter(list_b)

    while 1:

        try:

            a, b = next(iter_a), next(iter_b)

        except StopIteration:

            return

        if func((a, b)):

            yield (a, b)



result = list(zip_condition(list1, list2, lambda x: x[1] >= 5.5))

print(result)


查看完整回答
反对 回复 2021-11-30
  • 3 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信