假设我有一个所有州的字典,缩写作为键,长名称作为值:
statesDict = {'AK': 'Alaska', 'AL': 'Alabama', 'AR': 'Arkansas',...}
我还有一个预先选定的州缩写列表:
statesAbbrv = ['AL', 'CA', 'CO', 'DE']
基于cleanStates列表中的项目,我想选择stateNames字典中state缩写键的值(长名称),并将它们放入一个新列表;stateNames=[] 因此,比较结果如下:
stateNames = ['Alabama', 'California', 'Colorado', 'Deleware']
我在想下面的事,但没用。我做错什么了?你知道吗
stateNames = []
for i in statesAbbrv:
for k, v in statesDict:
if stateDict[k] == stateAbbrv[i]:
stateNames.append(stateDict(k))
print stateNames
使用^{} 。你知道吗
这是列表理解的典型工作:
请注意,如果由于某种原因某个州的缩写不在词典中,它将被用作州名称本身。你知道吗
在功能上,您可以将
map
2与dict.get
一起使用:如果找不到缩写匹配项,则会给出
None
。更严格的版本将产生KeyError
:后者类似于列表理解,因为
[]
是访问__getitem__
的语法:如果希望在找不到键时提供回退,请使用带有
dict.get
的列表理解:函数程序设计是一种将计算看作是对数学函数的求值的程序设计。另见Functional programming vs Object Oriented programming。你知道吗
在python2.x中,显式的
list
转换是不必要的,因为map
返回一个list
。在python3中,map
返回一个iterable,需要通过list
耗尽它。你知道吗相关问题 更多 >
编程相关推荐