如何用python優雅的實現二維列表平鋪

2021-09-22 05:52:40 字數 1975 閱讀 8326

先來看最c的方法

>>

>alist =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]>>

> res =

>>

>

for i in alist:

for j in i:

>>

> res[1

,2,3

,4,5

,6,7

,8,9

]

這個操作可以用列表推導式來生成,如下

>>

>alist =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]>>

>

[j for i in alist for j in i][1

,2,3

,4,5

,6,7

,8,9

]

瞬間爽了很多~~

此列表推導式的格式就是:

[①以什麼為列表元素,需要對這個元素進行什麼處理 ②遍歷獲取這個元素 ③條件判斷]

先看乙個最low的:-)

這個就是直接實現列表相加而已。

>>

>

list=[

[1,2

,3],

[4,5

,6],

[7,8

,9]]

>>

> x =

>>

>

for row in alist:

x += row

>>

> x[1

,2,3

,4,5

,6,7

,8,9

]

這個也可以寫成

>>

>

list=[

[1,2

,3],

[4,5

,6],

[7,8

,9]]

>>

> x =

>>

>

for row in alist:

x +=

[*row]

# 解包在轉化為列表。。。

>>

> x[1

,2,3

,4,5

,6,7

,8,9

]

最後來一種最優雅的方式,使用內建函式sum()

alist =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]>>

>

sum(alist,

)[1,

2,3,

4,5,

6,7,

8,9]

這個方法的原理是使用sum函式,sum(iter,start),start指的就是要計算的起始值,此處為空列表。值得注意的是,雖然字串是可迭代的,但是sum函式不能執行字串之間的相加。我們都是到 『abc』 + 『def』 = 'abcdef』但是這貨不可以這樣操作,如下

>>

> _list =

['abc'

,'def'

]>>

>

sum(_list)

traceback (most recent call last)

: file ""

, line 1,in

sum(_list)

typeerror: unsupported operand type

(s)for+:

'int'

and'str'

這個操作一般用』』.join(iter)來實現。

如何用python「優雅的」呼叫有道翻譯?

其實在以前就盯上有道翻譯了的,但是由於時間問題一直沒有研究 我的騷操作還在後面,記得關注 本文主要講解如何用python呼叫有道翻譯,講解這個爬蟲與有道翻譯的js 鬥爭 的過程!在這裡插入描述 對於乙個 首先肯定要的就是分析,分析其中的網頁規則 分析url 在這裡插入描述 分析引數01 在這裡插入描...

python實現多型 如何用python實現多型性

建立乙個名為 func 的函式,它將獲取乙個我們將其命名為 obj 的物件。雖然我們使用的名稱是 obj 但是任何例項化的物件都可以被呼叫到這個函式中。用函式實現多型性 class india def capital self print new delhi is the capital of in...

如何用python實現數字轉漢字?

在大多數情況下,漢字都比數字要顯得正式一些。比如說,二零一九年 就比較有官方檔案的味道,而 2019年 則更有個人日記的味道。另外,漢字還可以用來編繞口令!用數字的話就難得多。還是舉個栗子 14是14,40是40。就顯得很 十四是十四,四十是四十。就有一種唇齒生香的感覺。山前有44只石獅子,山後有4...