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

当我有两个列表时:

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

如果满足条件,我只想将索引列表项压缩在一起。否则对于列表索引项:0


小怪兽爱吃肉
浏览 175回答 3
3回答

牧羊人nacy

我建议使用列表理解来缩短版本:[x for x in zip(list1, list2) if x[1] >= 5.5]

青春有我

如果你想获得一个列表的压缩列表出来list1,并list2用条件的项目list2应该是>=5.5,那就试试这个:list3 = [[i,j] for i,j in zip(list1, list2) if j>=5.5]输出:[['course1', 12]]

慕田峪7331174

忘记 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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python