为了账号安全,请及时绑定邮箱和手机立即绑定

如何确定Python的多维列表中是否存在键

如何确定Python的多维列表中是否存在键

慕妹3146593 2021-03-22 09:10:53
我有一个这样填充的列表record.append([key, value1, count1, value2, count2])但是当我使用内置函数时,它不起作用。if k in record在Python中搜索多维列表的最优雅方法是什么?
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

要在列表列表中搜索关键字,您需要在这些内部列表中进行搜索:

您可以any在这里使用:

any(key in x for x in record)

或者,如果您的密钥始终在第一个索引处,那么这也将起作用:

any(key == x[0] for x in record)

或用于list.extend将单个项目附加到列表(而不是整个列表),则您的方法将可以正常工作。


查看完整回答
反对 回复 2021-03-23
?
茅侃侃

TA贡献1842条经验 获得超21个赞

import operator

if key in map(operator.itemgetter(0),records): ...

是我可能会使用的方法,还是更有效的方法,它会在不迭代整个列表的情况下短路(根据Ashwini的评论)...


import operator,itertools

if key in itertools.imap(operator.itemgetter(0),records): ...

但实际上我认为您真正想要的是


def findRecord(key,records):

    for r in records:

        if r[0] == key: 

            return r


print findRecord("some_key",records)


查看完整回答
反对 回复 2021-03-23
  • 2 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号