跳至正文
View Categories

< 1 min read

主要内容 #

  1. 列表的推导表达式:二层循环

1. 列表的推导表达式:二层循环 #

用于二层循环的列表推导表达式语法如下: list1= [表达式 for 元素1 in 迭代对象1 for 元素2 in 迭代对象2] 功能:将’迭代对象1’中的’元素’逐一取出放入变量’元素1’中, 将’迭代对象2’中的’元素’逐一取出放入变量’元素2’中, 将’元素1’和’元素2’按’表达式’进行操作,最终得到新的列表,并赋值给变量list1 例如:给定如下两个列表a和b,生成a和b的笛卡尔积,结果赋给新的列表c,并输出c的结果 a=[1,2,3,4,5,6], b = [2,3,4,5,6,7] 提示:假设A=[a,b], B=[0,1,2], 则A和B的笛卡尔积为:[a*0,a*1,a*2,b*0,b*1,b*2] 常规方法如下:
a = [1, 2, 3, 4, 5, 6]
b = [2, 3, 4, 5, 6, 7]
c = []
for i in a:
    for j in b:
        c.append(i*j)
print(c)
推导表达式的方法如下:
a = [1, 2, 3, 4, 5, 6]
b = [2, 3, 4, 5, 6, 7]
c = [i*j for i in a for j in b]
print(c)
注:理论上可以嵌套多层,不过为了代码的可读性,一般两层,不会超过三层。

3. 小结 #

  • 列表的推导表达式:二层循环
  • OJ训练题 #

    1、练25.2 订餐时间 – ★
    2、【入门】编程求1平方+2平方+…+n平方 – ★
    3、练42.5 大象喝水 – ★
    4、【入门】门票的定价 – ★★
    5、练47.4 小明吃苹果 – ★★★