当我有两个列表时:list1 = ['course1', 'course2', 'course3', 'course4', 'course5']
list2 = [12, 3, 3, 4, 5]如果满足条件,我只想将索引列表项压缩在一起。否则对于列表索引项:0
3 回答
青春有我
TA贡献1784条经验 获得超8个赞
如果你想获得一个列表的压缩列表出来list1
,并list2
用条件的项目list2
应该是>=5.5
,那就试试这个:
list3 = [[i,j] for i,j in zip(list1, list2) if j>=5.5]
输出:
[['course1', 12]]
慕田峪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)
添加回答
举报
0/150
提交
取消