python解析式

1.列表解析式

语法:[返回值 for 元素 in 可迭代对象 if 条件]

a = [i for i in range(10) if i % 3 == 0]

输出内容:[0, 3, 6, 9]
该表达式返回了一个新的列表,元素就是迭代循环的[0,10),等价于下面的写法

    b = []
    for i in range(10):
        if i % 3 == 0:
            b.append(i)

同样也支持返回值的处理

c = [(i+1)*3 for i in range(10) if i % 3 == 0]

2.字典解析式

语法:{key:value for 元素 in 可迭代对象 if 条件}

d = {i: i + 1 for i in range(10)}
#  该解析式生成了一组新的字典:{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}

遍历字典的key和value,key对应解析式返回中的x,value对应解析式返回中的x+1
dict_keys([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
dict_values([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
该字典解析式等价于:

    f = {}
    for i in range(10):
        f[i] = i+1
    # 字典解析式包含条件语句
    d = {x: x + 1 for x in range(10) if x % 3 == 0}
    # 该解析式返回字典:{0: 1, 3: 4, 6: 7, 9: 10}

3.总结

列表和字典解析式是一种语法糖,优化代码,减少了一定的代码量,在操作过程中,方便我们对于一些数据的构造。

你可能感兴趣的:(python解析式)