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

2024-09-30 08:24:54 发布

您现在位置:Python中文网/ 问答频道 /正文

当我有两个列表时:

list1 = ['course1', 'course2', 'course3', 'course4', 'course5']
list2 = [12, 3, 3, 4, 5]

我只想在满足条件的情况下压缩索引列表项。否则,对于列表索引项:0。在


Tags: 列表情况list2list1course2course4course3course1
3条回答

我建议使用列表理解的简短版本:

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

如果要从list1list2中获取一个压缩列表,条件是list2的项应该是{},那么请尝试以下操作:

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

输出

^{pr2}$

忘记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)

相关问题 更多 >

    热门问题