最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Python將多維列表「拉伸」為一維列表的10種方式

2023-09-27 17:42 作者:深度之眼官方賬號  | 我要投稿

來源:投稿 作者:Fairy
編輯:學姐

在Python編程中,列表是一種常用的數(shù)據(jù)類型。當我們遇到了一個嵌套列表,如果想將它扁平化為一維列表,就可以使用下面10種方法之一來實現(xiàn)這個需求。

1. 使用兩層循環(huán)遍歷

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。然后創(chuàng)建了一個空列表new_lst。接下來使用for循環(huán)遍歷lst中的每一個子列表,再使用嵌套的for循環(huán)遍歷子列表中的每一個元素,并將這些元素添加到new_lst中。最后輸出new_lst,即為將lst扁平化為一維列表的結(jié)果。

2. 使用flatten()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用NumPy庫的array()方法將lst轉(zhuǎn)換成了一個NumPy數(shù)組,再調(diào)用該數(shù)組的flatten()方法將其扁平化為一個一維數(shù)組。最后,將該一維數(shù)組轉(zhuǎn)換成一個標準的Python列表,并將其賦值給變量new_lst。最終輸出new_lst,即為將lst扁平化為一維列表的結(jié)果。

3. 使用列表解析式

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。然后,使用一行代碼創(chuàng)建了一個新的一維列表new_lst。具體來說,這行代碼中使用了兩層for循環(huán),并在內(nèi)部使用了列表推導式的語法。在這里,外層for循環(huán)用于遍歷lst中的每一個子列表,而內(nèi)層for循環(huán)則用于遍歷子列表中的每一個元素。最后,在列表推導式中使用了element這個變量來存儲遍歷到的元素,并將其添加到新列表new_lst中。

4. 使用reduce()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用reduce()函數(shù)和operator.concat函數(shù)實現(xiàn)將lst中的所有子列表連接在一起。具體來說,operator.concat函數(shù)用于將兩個列表連接在一起,而reduce()函數(shù)則用于對lst中的每一個子列表依次執(zhí)行concat操作。最終,reduce函數(shù)得到的結(jié)果是一個一維列表,存儲在變量new_lst中。

5. 使用from_iterable()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用itertools.chain.from_iterable()函數(shù)實現(xiàn)將lst中的所有子列表連接在一起。具體來說,from_iterable()函數(shù)用于將一個可迭代對象中的所有元素連接到一起,而chain()函數(shù)則用于在多個可迭代對象之間建立鏈接。最終,使用list()函數(shù)將生成的迭代器轉(zhuǎn)換為一個新的一維列表new_lst。

6. 使用sum()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用sum()函數(shù)實現(xiàn)將lst中的所有子列表連接在一起。具體來說,sum()函數(shù)用于對多個可迭代對象進行求和操作,而對于列表而言,在使用sum()函數(shù)時傳入一個空列表[]作為初始值,就可以將多個子列表拼接在一起。最終,使用list()函數(shù)將生成的結(jié)果轉(zhuǎn)換為一個新的一維列表new_lst。

7. 使用ravel()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用numpy中的ravel函數(shù)對lst進行扁平化操作,并將其轉(zhuǎn)換為一個一維數(shù)組。最后,使用list()函數(shù)將numpy數(shù)組轉(zhuǎn)換為一個新的一維列表new_lst。

8. 使用reshape()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用numpy.array()函數(shù)將lst轉(zhuǎn)換為一個numpy數(shù)組,并使用reshape()函數(shù)對其進行重新形狀,將其扁平化為一個一維數(shù)組。最后,使用tolist()函數(shù)將numpy數(shù)組轉(zhuǎn)換為一個新的一維列表new_lst。

9. 使用flatten()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用numpy.array()函數(shù)將lst轉(zhuǎn)換為一個numpy數(shù)組,并使用flatten()函數(shù)對其進行扁平化操作,將其扁平化為一個一維數(shù)組。需要注意的是,該函數(shù)傳入的參數(shù)'C'表示扁平化時按照行優(yōu)先順序進行,也就是將每一行展開到一起。最后,使用list()函數(shù)將numpy數(shù)組轉(zhuǎn)換為一個新的一維列表new_lst。

10. 使用stack()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用pandas.DataFrame()函數(shù)將lst轉(zhuǎn)換為一個DataFrame數(shù)據(jù)框,并使用stack()函數(shù)對其進行堆疊操作,將其扁平化為一個Series數(shù)據(jù)序列。然后,使用list()函數(shù)將Series轉(zhuǎn)換為一個新的一維列表new_lst。

以上10種方式,你了解哪幾種呢?

推薦課程

《Python ·? AI&數(shù)據(jù)科學入門》

關注“學姐帶你玩AI”公眾號,回復“Python”了解課程詳情~

Python將多維列表「拉伸」為一維列表的10種方式的評論 (共 條)

分享到微博請遵守國家法律
调兵山市| 武清区| 岚皋县| 班戈县| 澜沧| 房产| 酒泉市| 嘉峪关市| 高台县| 永平县| 甘孜县| 平果县| 安顺市| 蕲春县| 崇州市| 潍坊市| 泰州市| 房产| 巫山县| 彰化市| 赤水市| 新郑市| 秦皇岛市| 乡城县| 湖南省| 右玉县| 会泽县| 漳浦县| 长白| 宁陵县| 山西省| 上虞市| 镇安县| 新昌县| 分宜县| 中卫市| 溧水县| 兴业县| 汨罗市| 伊通| 萨迦县|