官术网_书友最值得收藏!

dict comprehensions

dict comprehensions are very similar to list comprehensions, but the result is a dict instead. Other than this, the only real difference is that you need to return both a key and a value, whereas a list comprehension accepts any type of value. The following is a basic example:

>>> {x: x ** 2 for x in range(10)}
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

>>> {x: x ** 2 for x in range(10) if x % 2}
{1: 1, 3: 9, 9: 81, 5: 25, 7: 49}

Note

Since the output is a dictionary, the key needs to be hashable for the dict comprehension to work.

The funny thing is that you can mix these two, of course, for even more unreadable magic:

>>> {x ** 2: [y for y in range(x)] for x in range(5)}
{0: [], 1: [0], 4: [0, 1], 16: [0, 1, 2, 3], 9: [0, 1, 2]}

Obviously, you need to be careful with these. They can be very useful if used correctly, but the output quickly becomes unreadable, even with proper whitespace.

主站蜘蛛池模板: 轮台县| 马尔康县| 顺义区| 常州市| 楚雄市| 左贡县| 定安县| 西安市| 庆城县| 琼结县| 郓城县| 芜湖市| 出国| 会理县| 汨罗市| 巨野县| 阜康市| 贵阳市| 九江县| 临夏市| 沈丘县| 元朗区| 韶山市| 特克斯县| 巴南区| 汾阳市| 广州市| 鞍山市| 蓬安县| 集贤县| 巴中市| 临西县| 雅安市| 屏东市| 阿荣旗| 宁安市| 平阳县| 无棣县| 栖霞市| 凤山县| 潼南县|