我想在下面的列表中使用列表理解
movie_dicts = [{'title':'A Boy and His Dog', 'year':1975, 'rating':6.6},
{'title':'Ran', 'year':1985, 'rating': 8.3},
{'title':'True Grit', 'year':2010, 'rating':8.0},
{'title':'Scanners', 'year':1981, 'rating': 6.7}]
利用我对列表理解和字典的知识,我知道
movie_titles = [x['title'] for x in movie_dicts]
print movie_titles
将打印包含电影标题的列表。
为了提取(title,year)元组的列表,我尝试了-
movie_tuples = [x for ('title','year') in movie_dicts]
print movie_tuples
我收到一个错误SyntaxError:can t assign to literal
我不确定如何使用列表理解来获取这两个(特定的)键/值对(这样做会自动生成一个元组?)
给予
或者
结果完全一样。
此版本至少会重复您自己的操作:
记住,
xs = [expr for target in expr2]
相当于(为了简单起见,几乎忽略了StopIteration
):因此
target
需要是一个普通的旧变量名或一些要解包到的元组。但是由于movie_dicts
不包含要从中解包的序列,而只包含简单的单个值(dict),因此必须将其限制为一个变量。然后,当您附加到正在生成的列表中时,您可以创建一个元组并对当前项执行任何其他操作。相关问题 更多 >
编程相关推荐