有大佬能讲讲这个吗?
我知道这是个列表推导式,但是大佬能讲讲列表推导式的具体格式吗? 相当于lst = []
for x in range(1,100):
if x % 3 == 0:
lst.append(x)
大白话 列表中存储着变量x, x是由 range(1,100)迭代产生的,条件为 x%3==0
格式就是 [变量名 for 变量 in 迭代器 if 条件]
其中if 条件可以去掉
最简单的推导
>>>
加上条件
>>>
混合推导
>>> [ for x in range(3) for y in range(3)]
[, , , , , , , , ] 我在研究列表解析式的时候,我领悟到一个道理就是,代码的简洁和可读性有时候背道而驰的。在讲那个三元表达式的时候就是这样了。
matrix = [
,
,
,
]
for row in matrix:
for col in row:
print(col)
ff =
复制代码
这循环看的很清楚啊,这样复杂的列表解析就是很难看的(至少目前是这样的)
不过很重的是,要理解列表解析式,很明显多看看循环就知道了。
所以,总结一下列表解析法的要点:
1.结合循环,循环一定是其基础!!就像a = b if 条件 else c 一样,必须理解其本身的样子
2.是为了从可迭代对象建立序列的时候才用这样的方法,更为简单
3.也有条件表达的 如
evens =
复制代码
4.切记可以不用太复杂了,两层我觉得就够了
关键词:可迭代,创建序列,循环
参考文献:https://www.cnblogs.com/amiza/p/10159293.html
紧急补充:元组不可以!!目前看来是只有可改变的序列才可以:集合,字典,列表
ps;看吧,掌握了循环就很快就知道怎么看这个列表解析了
list2 = []
for x in range(10):
for y in range(10):
if x %2 == 0:
if y %2 != 0:
list2.append((x,y))
print(list2)
list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
复制代码
页:
[1]