在你数据结构不该变的情况下,依然只能是遍历,只是Python可以写的很优雅,不用去写for循环:
# -*- coding: UTF-8 -*
users = [
{
u'UserName': u'@27ed44102dd86ec42eb1a572b283b5b8',
u'RemarkPYQuanPin': u'',
u'DisplayName': u'',
u'KeyWord': u'',
u'PYInitial': u'',
u'Uin': 112266535,
u'RemarkPYInitial': u'',
u'PYQuanPin': u'',
u'MemberStatus': 0,
u'NickName': u'一二三',
u'AttrStatus': 2181050407L
},
{
u'UserName': u'@7a9e7af3a886a6c7d7219f0e017e5b586263de82e32300c267a78202118e7573',
u'RemarkPYQuanPin': u'',
u'DisplayName': u'',
u'KeyWord': u'',
u'PYInitial': u'',
u'Uin': 22720082935L,
u'RemarkPYInitial': u'',
u'PYQuanPin': u'',
u'MemberStatus': 0,
u'NickName': u'天天',
u'AttrStatus': 102469
},
{
u'UserName': u'@886fe820eacd4899505b86469257f56be7f95e8a433109f85e23e12c27a575f6',
u'RemarkPYQuanPin': u'',
u'DisplayName': u'',
u'KeyWord': u'',
u'PYInitial': u'',
u'Uin': 33135252892L,
u'RemarkPYInitial': u'',
u'PYQuanPin': u'',
u'MemberStatus': 0,
u'NickName': u'李金芬',
u'AttrStatus': 4165
},
{
u'UserName': u'@c5c563df9c089b12eeca1e68dd6745ebf8963092791efd3a17b0867ade949944',
u'RemarkPYQuanPin': u'',
u'DisplayName': u'',
u'KeyWord': u'',
u'PYInitial': u'',
u'Uin': 402283062,
u'RemarkPYInitial': u'',
u'PYQuanPin': u'',
u'MemberStatus': 0,
u'NickName': u'小蜻蜓',
u'AttrStatus': 4133
}
]
print filter(lambda x:x[u'NickName'] == u'小蜻蜓', users)
如果数据结构可以变的话,你可以做一个字典完成NickName到用户的映射,查找的时候直接通过NickName来获取用户(前提是NickName不能重复)。
实际生产过程中,看看有无可能把数据存到MongoDB里面去,对NickName做索引,速度也能上来了。