字典推导与集合推导

2019-01-24  本文已影响4人  5f2a6061653d

字典推导

字典推导与列表推导相似,它将推导出一个字典,具体示例如下:

dict1 = {x : x * x for x in range(6)}

字典解析使用花括号包围,并且需要两个表达式,一个生成key,一个生成value,两个表达式之间使用冒号分割,结果返回字典。若通过print()打印dict1,则输出结果为:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

上述就是一个简单的字典推导,接下来演示稍微复杂的字典推导,如下所示。

1 dict1 = [(98, 'china'), (85, 'india'), (1, 'united states')]
2 dict2 = {country: code for code, country in dict1}
3 print(dict2)
4 print({code: country for country, code in dict2.items() if code < 90})

运行结果如下图所示。


运行结果

在上例中,第2行通过字典推导将dict1中的值与键作为dict2中的键与值,第4行通过字典推导筛选键值小于90的元素并返回一个新字典。

集合推导

集合推导也与列表推导相似,只需将中括号改为花括号,具体示例如下:

set1 = {x * x for x in range(6)}

集合推导将返回一个集合。若通过print()打印set1,则输出结果为:

{0, 1, 4, 9, 16, 25}

接下来演示集合推导的用法,如下所示。

1 strings = ['Python', 'HTML', 'PHP', 'VR', 'Java', 'C++']
2 print ({len(s) for s in strings})

运行结果如下图所示。


运行结果

在上例中,第2行使用集合推导创建一个字符串长度的集合,字符串长度相同的值只会在集合中出现一次。

上一篇 下一篇

猜你喜欢

热点阅读