如何使用Map搜索元组列表中的数据

时间:2014-11-05 18:46:41

标签: python map

以下代码:

mylist = [('Wheatley','808321'),('Smith','009557'),('Stewart','808123')]

results = [last_name for (last_name,person_id) in mylist if person_id == '808123']
print(results[0])
'''Another way would be using map and filter: '''

print(set(map(lambda x: x[0], mylist)))

mine = list(zip(*mylist))
print(mine[1])

产生

Stewart
{'Wheatley', 'Smith', 'Stewart'}
('808321', '009557', '808123')

如何获取地图功能和zip功能来搜索person_id == 808123并且只有答案' Stewart'?

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找filter功能

filter(lambda x: x[1] == '808123', mylist)[0][0]

生成'Stewart'

答案 1 :(得分:0)

您无需使用zip()功能即可使用map()功能:

mylist = [('Wheatley','808321'),('Smith','009557'),('Stewart','808123')]

mine = map(None, (item for item in mylist if item[1] == '808123'))

print mine[0][0]  # -> Stewart

然而,列表理解是更好的选择。

mine = [item for item in mylist if item[1] == '808123']