将列表中的元素与可能的值匹配

时间:2018-09-23 19:19:54

标签: python python-3.x list

我有一个单词表。假设:

words = ['a', 'b', 'c', 'd', 'a', 'g', 'h', 'v']
values = ['donkey', 'monkey', 'whale', 'dog']

注意:真实列表要长得多

取决于列表words中的每个元素,它应该输出一定的值。 例如,a应该打印donkey,b应该打印whale等。

values非常长(30个元素)。而且它们是手写的。他们没有从别的东西读。 words是。这意味着我可以选择词典或其他更好的方法。 处理此问题的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

您应该将其保存为字典。像这样

lookup  =  {  'a': 'donkey', 'b':  'monkey', 'c':'wale'}

这将帮助您更好更快地访问它。

当您需要a时,lookup['a']将为您提供结果。

您的方法也可以应用,但是时间复杂度会更高。

words = ['a', 'b', 'c', 'd', 'a', 'g', 'h', 'v']
values = ['donkey', 'monkey', 'whale', 'dog']

print(values[words.index('b')])

答案 1 :(得分:1)

不知道在这种情况下如何'b'->'鲸鱼',但是...

In [5]: wv = dict(zip(words, values))

In [6]: wv
Out[6]: {'a': 'donkey', 'b': 'monkey', 'c': 'whale', 'd': 'dog'}

In [7]: wv['a']
Out[7]: 'donkey'

答案 2 :(得分:1)

您可以使用zip将列表转换为字典

dict(zip(words, values))

zip将自动截断较长的列表。

{'a':'donkey', 'b':'monkey', 'c':'whale', 'd':'dog'}

然后,您可以使用以下键访问值:d['a']