working with a big list这是我之前关于此程序的帖子,它生成以下列表。我写的程序涉及一个大的链表。此列表称为phonemeList。该列表如下所示:
[[('dh', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.35], [-1, -1]]),
('ih', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.05, 0.15], [-1,-1]]),
("'", None),
('k', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.8], [-1, -1]]),
('aa', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1, -1]]),
('r', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.6], [-1, -1]]),
("'", None),
('p', [[-1, -1], [0.2, 1.0], [-1, -1], [-1, -1], [0.15, 0.2], [-1, -1]]),
('ih', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.05, 0.15], [-1, -1]]),
("'", None),
('k', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.8], [-1, -1]]),
('iy', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.1, 0.15], [-1, -1]]),
('ng', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.09, 0.3], [-1, -1]]),
("'", None),
('er', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.5], [-1, -1]]),
("'", None),
('sh', [[-1, -1], [-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [-1, -1]]),
('eh', [[-1, -1], [-1, -1], [0.1, 0.5], [-1, -1], [0.4, 0.7], [-1, -1]]),
('m', [[-1, -1], [0.2, 1.0], [-1, -1], [-1, -1], [0.15, 0.2], [-1, -1]]),
("'", None),
('p', [[-1, -1], [0.2, 1.0], [-1, -1], [-1, -1], [0.15, 0.2], [-1, -1]]),
('uw', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.5, 1.0]]),
('dx', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.35], [-1, -1]]),
("'", None),
('aa', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1, -1]]),
("'", None),
('er', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.5], [-1, -1]]),
("'", None), ('aa', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1,-1]]),
("'", None),
('r', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.6], [-1, -1]]),
('iy', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.1, 0.15], [-1, -1]]),
("'", None),
('ih', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.05, 0.15], [-1, -1]]),
('n', [[-1, -1], [-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [-1, -1]]),
('t', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.4], [-1, -1]]),
('l', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.6], [-1, -1]]),
("'", None), ('r', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15,0.6], [-1, -1]]),
('ah', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1, -1]]),
('k', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.8], [-1, -1]])]]
请您仔细查看该链接,以便了解该计划。谢谢。 [0.15,0.6]不是列表而是范围。这里表示为可能错误的列表。这意味着该值可以在0.15到0.6之间变化。其中[-1,-1]是没有使用的无范围的东西,并且在比较时可以用一系列正数代替。现在我需要将'dh'的项目与'ih'的项目进行比较。 'dh'的第一项将与'ih'的第一项进行比较,然后将第二项与第二项进行比较,依此类推。然后将'dh'的项目与忽略“'”的'k'项进行比较。 'dh'将与遵循规则的所有人进行比较。然后'呃'进入画面并重复同样的事情。这样做(“'”,无),应该被忽略。比较期间范围发生变化,[-1,-1]将被替换。 (“'”,无)就像一个边界。在将所有项目相互比较之后,下一步将是在这些边界内进行比较。作为初学者,这对我来说真的很复杂。但这也是我的主要项目所以请帮助我。非常感谢你。
答案 0 :(得分:0)
老实说,听起来你需要一个类,而不是嵌套列表。
class Phoneme():
def __init__(self,named,variables,for,every,paired,value,in,the,crazy,list,you,posted):
self.named = named
self.variables = variables
##etc
##This way, we can see what you're comparing. The comparisons also become much easier.
现在你的比较可以简单地说就像:
if phoneme1.fricative == phoneme2.fricative:
do_something_awesome()
啊,如果课程令人困惑,我建议你check out these links.这4个教程对类的描述相当不错。最后一个是官方教程,从那个开始。 Dive into Python是另一个很好的例子,但是它面向那些已经了解另一种编程语言的人,所以如果Python是你的第一个,那可能有点令人生畏。