在python中搜索索引

在python中搜索索引,python,indexing,Python,Indexing,我正试图在《戈德尔、埃舍尔、巴赫》一书中编写MIU正式系统的代码,这时我遇到了一个路障。我对计算机科学和python是相当陌生的,这就是基本问题 derivations = [[0,'MI'],[1,'MII','MIU'],[2,'MIUIU','MIIU','MIII']] 我想创建派生子索引,在每个子索引的开头有一个树深度编号。通过该整数隔离这些子索引以通过循环运行以下字符串的最佳方法是什么 提前谢谢 如果您正在搜索特定的子索引,可以通过以下方式进行搜索: >>> su

我正试图在《戈德尔、埃舍尔、巴赫》一书中编写MIU正式系统的代码,这时我遇到了一个路障。我对计算机科学和python是相当陌生的,这就是基本问题

derivations = [[0,'MI'],[1,'MII','MIU'],[2,'MIUIU','MIIU','MIII']]
我想创建派生子索引,在每个子索引的开头有一个树深度编号。通过该整数隔离这些子索引以通过循环运行以下字符串的最佳方法是什么

提前谢谢

如果您正在搜索特定的子索引,可以通过以下方式进行搜索:

>>> sub_indexes = [index for index where index[0] == 1]
>>> sub_indexes
[[1,'MII','MIU']]
这将返回深度为1的所有子索引。请注意,结果将是与搜索条件匹配的所有索引的列表,因此要获取索引,您需要执行以下操作:

>>> sub_index = sub_indexes[0]
>>> sub_index
[1, 'MII', 'MIU']]
在此之后,您可以通过以下方式处理字符串:

depth = sub_index[0]
for mu_string in [item for item in sub_index if hasattr(item, 'count')]:
    new_strings = generate_more_strings(mu_string, depth)

其中,
generate\u more\u string(my\u string)
将生成给定字符串的变体。

我觉得您需要这样的内容:

depthDict = {x[0]:x[1:] for x in derivations}
它将获取列表列表并构造一个以第一个元素为键的
dict
。这样,您可以通过树深度编号访问字符串列表,如下所示:

print depthDict [1] # prints ['MII', 'MIU']


我不明白你的问题。给定输入的预期输出是什么?Hi@user1544819,当问题包含从输入到输出所需的所有信息时,堆栈溢出问题最有效。我已经有一段时间没有读过GEB了,所以为了我自己和其他人的利益,你可能应该在你的帖子中添加派生规则,这样人们就可以自己测试派生。我完全理解,我也在保护自己,不让别人为我解决整件事。我特别希望只涵盖索引问题,但当我完成后,我会把它张贴在这里。我相信有一些很好的方法可以让我的工作更有效率。这很有意义。我已经看过字典了,只需要复习一下,就可以把它作为最有用的选择。非常感谢。
for myString in depthDict[3]:
  print myString # prints MII and MIU