您的位置:

关于python中list嵌套问题的信息

本文目录一览:

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)

...