所以我有一个将在今晚晚些时候到期的任务,我坚持这个定义。我所拥有的是随机术语列表:
['i', 'am', 'a', 'brown', 'cow']
我想对此列表做些什么是将每个术语与值/术语相关联:
[['i', ['term']], ['am', ['term']], ['a', ['term']], ['brown', ['term']], ['cow', ['term']]]
我对如何开始这个问题的想法是使用for循环并在每个关键术语后附加术语,并以某种方式尝试分离每一对。
答案 0 :(得分:0)
看看蟒蛇zip() function。
在这些问题中,python list comprehension有时也会派上用场。
答案 1 :(得分:0)
如果你是Python的初学者,最明显的选择可能是简单的循环方法:
d = {}
lst = ['i', 'am', 'a', 'brown', 'cow']
for key in lst:
d[key] = 'term'
在此之后,你可以像这样访问你的元素:
In: print d['am']
Out: 'term'
当然,这不是最好的方法。正如其他人已经说过的那样,你应该看一下list comprehension和内置zip()
函数。我将尝试使用列表推导和zip()
函数编写一些代码示例,但仍然强烈建议您阅读官方文档。
你应该注意,列表理解总是会给你一个列表作为结果,所以你能得到的最好的东西就是你在问题中展示的内容。这是一个小例子:
lst = ['i', 'am', 'a', 'brown', 'cow']
res = [[item, ['term']] for item in lst]
这将为您提供与您在问题中所写的完全相同的内容。如果你想获得一个字典(如我们的第一个例子),你可能想稍微修改这个代码:
lst = ['i', 'am', 'a', 'brown', 'cow']
res = [(item, 'term') for item in lst]
d = dict(res)
你又来了:
In : print d['am']
Out: 'term'
现在,您可能希望为列表的不同元素指定不同的术语。 假设您有两个相同长度的列表,一个包含元素,另一个包含术语:
lst = ['i', 'am', 'a', 'brown', 'cow']
terms = ['term1', 'term2', 'term3', 'term4', 'term5']
这是zip()
函数帮助的地方。如果您将lst
和terms
作为参数传递,它会为您提供一个元组列表(就像之前几行中的res
变量一样):
In : zip(lst, terms)
Out: [('i', 'term1'), ('am', 'term2'), ('a', 'term3'), ('brown', 'term4'), ('cow', 'term5')]
现在您可以再次使用dict
创建新词典:
what_i_need = dict(zip(lst, terms))