python - 在python中比较list中的2个对应元素并分别打印
问题描述
我有 2 个列表:
x=[[3, 'id1', 50],[1, 'id2', 34],[2, 'id3', 39],[5, 'id2', 26],[4,'id3', 23]]
y=[5,6,4,4,3]
基于一个条件,假设我x
用过滤'id2'
,我得到的列表为[[1, 'id2', 34],[5, 'id2', 26]]
。
现在我想打印列表y
中的相应值,在这种情况下,[6,4]
我可以根据条件从第一个列表中过滤元素,但无法找到从第二个列表中获取相应数据的方法。
这如何在python中完成?
解决方案
用于zip
同时遍历列表:
x = [[3, 'id1', 50],[1, 'id2', 34],[2, 'id3', 39],[5, 'id2', 26],[4,'id3', 23]]
y = [5,6,4,4,3]
lst = [b for a, b in zip(x, y) if a[1] == 'id2']
# [6, 4]
如果您需要x
和y
列表的内容:
lst1, lst2 = zip(*[(a, b) for a, b in zip(x, y) if a[1] == 'id2'])
print(lst1) # ([1, 'id2', 34], [5, 'id2', 26])
print(lst2) # (6, 4)
推荐阅读
- java - 我可以让 SWT 表标题跨越以制作超级标题吗
- docker - 无法在 Docker Desktop for Windows 上创建 NAT 网络
- python - 如何通过 eb cli (django postgres) 迁移 AWS RDS 数据库?
- java - Java Morphia Map/List 基于泛型类型加载,但不从继承给定类型的子类加载
- c# - 通过 Mongo DB C# 驱动程序从嵌套列表中删除 Guid(uuid)
- azure - 使用专用终结点定期在应用服务上获得 403 IP Forbidden
- postgresql - DOCKERFILE RUN addgroup: 组 'postgres' 正在使用中
- docker - 如何将 Docker Hub 映像拉到 Google Cloud Run?
- flutter - 扑动当api更改时如何重建我的小部件?
- javascript - 如何在圆环图中的扇区之间进行缩进?