【Python学习日记】列表解析

 Python中的解析

Python支持各种解析(comprehension)操作,比如列表解析、集合解析、元组解析、字典解析。它们根据某些元素来创建(推导)出一个新的列表、集合、元组、字典等。所以有的地方也称为推导,比如列表推导、集合推导等


列表解析

列表解析:是将for循环和创建新元素的代码合成一行,并自动附加新的元素

具体解释:

  • x ∈ N表示的是装元素的容器,这个容器里的元素是解析时被迭代的对象
     
  • x是变量,是容器中的元素,,对应于列表解析中的i
  • x² > 3表示的是谓词,是可选的条件判断式是可选的
     
  • 2 * x表示的是外部表达式,类似于循环代码块
     
  • {}意味着外部表达式的元素所存放的容器是集合容器,对应于列表解析中的[],表示新生成的元素是列表中的元素

 

具体例子:

下面用for循环写一个简单小例子。

lst=[]
for i in range(0,11):
    i*=i
    lst.append(i)
print(lst)

下面是换作列表解析:

lst1=[j**2 for j in range(0,11)]
print(lst1)

结果:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


例子2 嵌套列表解析

###正常嵌套

lst2=[]
for i in range(10):
    if i%2==0:
        for j in range(15):
            if j%3==0:
                lst2.append((i,j))
print(lst2)

### 等价为列表解析

lst3=[(i,j) for i in range(10) if i%2==0 for j in range(15) if j%3==0]
print(lst3)

结果:

[(0, 0), (0, 3), (0, 6), (0, 9), (0, 12), (2, 0), (2, 3), (2, 6), (2, 9), (2, 12), (4, 0), (4, 3), (4, 6), (4, 9), (4, 12), (6, 0), (6, 3), (6, 6), (6, 9), (6, 12), (8, 0), (8, 3), (8, 6), (8, 9), (8, 12)]


[(0, 0), (0, 3), (0, 6), (0, 9), (0, 12), (2, 0), (2, 3), (2, 6), (2, 9), (2, 12), (4, 0), (4, 3), (4, 6), (4, 9), (4, 12), (6, 0), (6, 3), (6, 6), (6, 9), (6, 12), (8, 0), (8, 3), (8, 6), (8, 9), (8, 12)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值