以下代码:
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'?
答案 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']