比较Python中字典列表中的值

冬青

我是Python的新手。我有一个成员列表和一个会议列表(包含成员ID):

memberList = [{'id': '1', 'name': 'Joe'},
{'id': '2', 'name': 'Jason'},
{'id': '3', 'name': 'Billy'}]

meetingList = [{'meetingId': '20', 'hostId' : '1'},
{'meetingId': '21', 'hostId' : '1'},
{'meetingId': '22', 'hostId' : '2'},
{'meetingId': '23', 'hostId' : '2'}]

成员的id和会议的hostId的值相同。

结果:没有会议的成员ID['3']列表或词典列表[{'id': '3', 'name': 'Billy'}]

最佳和最易读的方法是什么?

丹妮·梅塞乔

您可以构建一主机,然后使用列表推导筛选出成员:

member_list = [{'id': '1', 'name': 'Joe'},
               {'id': '2', 'name': 'Jason'},
               {'id': '3', 'name': 'Billy'}]

meeting_list = [{'meetingId': '20', 'hostId': '1'},
                {'meetingId': '21', 'hostId': '1'},
                {'meetingId': '22', 'hostId': '2'},
                {'meetingId': '23', 'hostId': '2'}]

# create a set of hosts
hosts = set(meeting['hostId'] for meeting in meeting_list)  # or { meeting['hostId'] for meeting in meeting_list }

# filter out the members that are in hosts
res = [member['id'] for member in member_list if member['id'] not in hosts]
print(res)

输出量

[{'id': '3', 'name': 'Billy'}]

对于id输出,请执行以下操作:

res = [member['id'] for member in member_list if member['id'] not in hosts]
print(res)

输出量

['3']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章