本文目錄一覽:
- 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)
…
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/254608.html