首页 > 代码库 > 列表解析、字典解析

列表解析、字典解析

列表解析

创建一个整数列表

number_list = [number for number in range(1,6)]
number_list
[1, 2, 3, 4, 5]

使用条件表达式

number_list = [number-1 for number in range(1,6)]
number_list
[0, 1, 2, 3, 4]

创建一个1-5之间的偶数列表

number_list = [number for number in range(1,6) if number % 2 == 0]
number_list
[2, 4]

列表解析和嵌套循环

rows = range(1,4)
cols = range(1,3)
cells = [(row, col) for row in rows for col in cols]
cells
[(1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2)]

rows = range(1,4)
cols = range(1,3)
for row in rows:
    for col in cols:
        print(row, col)
   
1 1
1 2
2 1
2 2
3 1
3 2

字典解析

统计aaaeebekkuek字母出现的次数

word = ‘aaaeebekkuek‘
counts = {count:word.count(count) for count in word}
counts
{‘a‘: 3, ‘b‘: 1, ‘e‘: 4, ‘k‘: 3, ‘u‘: 1}

集合解析

a_set = {number for number in range(1,20) if number % 3 == 1}
a_set
{1, 4, 7, 10, 13, 16, 19}

生成器解析

number_thing = (number for number in range(1, 6))
#圆括号之间的是生成器解析式,它返回的是一个生成器对象
number_list = list(number_thing)
#过对一个生成器解析式调用 list() 函数,使它类似于列表解析
number_list
[1, 2, 3, 4, 5]

try_again = list(number_thing)
try_again
[]

一个生成器只能运行一次。列表、集合、字符串和字典都存储在内存中,生成器仅在运行中产生值, 不会被存下来,所以不能重新使用或者备份一 个生成器,再一次迭代此生成器,它已经被销毁了


本文出自 “左手右手” 博客,请务必保留此出处http://mofeihu.blog.51cto.com/1825994/1873312

列表解析、字典解析