【问题标题】:Python: Find item in multidimensional listPython:在多维列表中查找项目
【发布时间】:2011-08-03 13:32:36
【问题描述】:

我有一个列表列表,其中的一个 sn-p 如下:

x_attrib = []

self.x_attrib.append(["Is_virtual", False, 'virtual', 'flag'])
self.x_attrib.append(["X_pos", None, 'pos/x', 'attrib'])
self.x_attrib.append(["Y_pos", None, 'pos/y', 'attrib'])

我想创建一个函数来返回第一个位置的项目索引(即我想将"X_pos" 传递给函数,并让它返回1)。

我该怎么做?

【问题讨论】:

  • 你试过什么? (如果您证明自己尝试过但失败了,那么您更有可能获得帮助)
  • 嘿,我不知道如何开始。我试图在列表内的列表中找到一个项目,然后返回外部列表。我想我可以编写一个迭代函数,但它会非常低效。我想知道是否有更优雅的方式来做到这一点。

标签: python list find multidimensional-array


【解决方案1】:

如果我理解正确,你需要这样:

def find_it(key):
   for index, sublist in enumerate(lists):
       if sublist[0] == key:
            return index

话虽如此,您的代码看起来好像您正在错误地解决更普遍的问题。即该列表看起来是个坏主意。如果没有更好地了解您在做什么,我无法确定。

【讨论】:

  • 我正在解析 xml,并将值、x_paths 等存储在列表中。我这样做是为了避免重复代码,因为我有几种不同类型的文件要解析。是的,它很难看,但我想不出更好的方法。
  • 我输入了该代码(更改了列表-->x_attrib),但它在第二行显示不正确的语法。
  • 你的代码运行后,你可以将它发布到codereview.stackexchange.com,我可能会告诉你如何做到不丑。
  • @Blosci3c,这是一个测试,看看你是否理解我写的内容。开个玩笑,第二行缺少冒号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 2014-03-26
相关资源
最近更新 更多