本文目录一览:
- 1、python 嵌套list读取
- 2、python 嵌套list
- 3、Python list 生成式(推导式list comprehension)中嵌套if else
- 4、关于Python列表嵌套问题
python 嵌套list读取
b1=[[2]*3]*2
b2=[[2,2,2],[2,2,2]]
这个两个定义的变量其实时不一样的
b2一个list,包含两个list元素
b1是1个list元素的两个浅拷贝,可以理解成两个指向[2]*3的指针。
出现这种问题,实际上理解的误区,[2]*3
=
[2,2,2]
就想当然的把[[2]*3]*2=
[2,2,2]*2
=
[[2,2,2]
[2,2,2]]
其实[[]]是一个list的浅拷贝(或者理解成指向list指针)
更详细的可以看下python的文档,里面有说明。
python 嵌套list
def iseven(l):
for i in l:
if i%2:
return False
return True
def only_evens(ll):
r=[]
for i in ll:
if iseven(i):
r.append(i)
return r
print only_evens([[1, 2, 4], [4, 0, 6], [22, 4, 3], [2]])
Python 2.7 执行结果
[[4, 0, 6], [2]]
其中 iseven 函数判断 list 是不是都是偶数
Python list 生成式(推导式list comprehension)中嵌套if else
如果按中文习惯写嵌套列表生成式可能写出如下的错误语法
Python的语法是按英文阅读方式设计的,因此,正常的方式应该是
或者用更简洁的形式 [false,true][condition] is the syntax :
通过示例学习Python列表推导
if/else in Python's list comprehension?
python one-line list comprehension: if-else variants
if else in a list comprehension [duplicate]
关于Python列表嵌套问题
这个叫元组的拆包或解包。
list1迭代返回的是元组,那么for循环内就是
m,n = ('c',1)
m,n = ('Python',2)
...