猿问

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

我有一个这样填充的列表

record.append([key, value1, count1, value2, count2])

但是当我使用内置函数时,它不起作用。

if k in record

在Python中搜索多维列表的最优雅方法是什么?


慕妹3146593
浏览 204回答 2
2回答

精慕HU

要在列表列表中搜索关键字,您需要在这些内部列表中进行搜索:您可以any在这里使用:any(key in x for x in record)或者,如果您的密钥始终在第一个索引处,那么这也将起作用:any(key == x[0] for x in record)或用于list.extend将单个项目附加到列表(而不是整个列表),则您的方法将可以正常工作。

茅侃侃

import operatorif key in map(operator.itemgetter(0),records): ...是我可能会使用的方法,还是更有效的方法,它会在不迭代整个列表的情况下短路(根据Ashwini的评论)...import operator,itertoolsif key in itertools.imap(operator.itemgetter(0),records): ...但实际上我认为您真正想要的是def findRecord(key,records):    for r in records:        if r[0] == key:             return rprint findRecord("some_key",records)
随时随地看视频慕课网APP

相关分类

Python
我要回答