首頁  >  文章  >  後端開發  >  在Python中壓縮不同大小的列表

在Python中壓縮不同大小的列表

王林
王林轉載
2023-09-04 21:25:051237瀏覽

在Python中壓縮不同大小的列表

簡介

在 Python 中,列表是廣泛使用的儲存數字或字串值的方法之一。它們是可變的,並透過使用方括號 [] 進行定義。此類類型的清單可以包含不同的元素,這些元素可以具有不同的資料類型。有時出於資料預處理的目的,我們可能需要在 Python 中壓縮不同的清單。

在本文中,我們將討論清單的壓縮操作,以及如何使用不同的方法和技術在 Python 中壓縮不同大小的清單。本文將幫助人們了解清單的壓縮操作,並幫助人們在必要時執行相同的操作。

現在讓我們開始討論清單及其壓縮操作。

列表壓縮

眾所周知,清單是儲存元素的常用方法,其中可以包含數字或字串值。它們是可變類型,通常用於在使用 Python 時處理資料集。

列表的壓縮操作意味著我們實際上是在壓縮兩個不同的列表,或者更簡單地說,我們正在將兩個不同列表的值配對。

為了闡明背後的想法,讓我們舉個例子。假設我們有兩個列表:

L1 = [1,2,3]

L2 = [‘一’、‘二’、‘三’]

正如我們在上面看到的,我們有兩個不同的列表,一旦我們對其執行壓縮操作,輸出將是:

Zipped_List = [(1, ‘一’), (2, ‘二’), (3, ‘三’)]

現在讓我們討論 Python 中壓縮列表的用例。

壓縮清單的應用

壓縮兩個相同大小或不同大小的不同清單可能在許多情況下有所幫助。讓我們討論一下:

字典表示:對兩個不同清單的壓縮操作可以幫助我們將清單建立或表示為字典。我們可以透過取得一個包含鍵的清單和包含字典值的其他清單來執行相同的操作。

資料處理:在某些情況下,為了繼續執行任務,資料處理是必須的,可能需要一個公共清單而不是這麼多不同的清單。在這種情況下,壓縮操作可能非常有幫助。

資料迭代:當您想要迭代列表元素並且想要對其執行某些操作時,也可以使用壓縮操作。

壓縮列表

有很多方法可以用來壓縮不同的列表,讓我們討論其中的一些。

方法 1:使用 For 迴圈和枚舉

將 for 迴圈與枚舉結合使用是壓縮兩個不同大小的清單的最簡單方法之一。

# Using For Loop with Enumerate
#1. Define two lists 2. Run a for loop with enumerate 3. Zip the lists

# define the two lists
list1 = [1,2,3,4,5,6]
list2 = [1, 5, 6]

# print the original lists
print ("The input list 1 is : " + str(list1))
print ("The input list 2 is : " + str(list2))

# for i, j run a for loop with enumerate
# append the values with j
res = []
for i, j in enumerate(list1):
  res.append((j, list2[i % len(list2)]))

# print the zipped list
print ("The Zip List from List 1 and 2 is : " + str(res))

正如我們在上面的程式碼中所看到的,我們輸入了兩個不同的列表,分別為列表1和列表2,它們的大小不同。

首先,我們列印原始列表,然後使用枚舉函數運行 for 循環,該循環將附加列表元素並壓縮兩個列表。

輸出

以下程式碼的輸出為:

The input list 1 is : [1, 2, 3, 4, 5, 6] 
The input list 2 is : [1, 5, 6] 
The Zip List from List 1 and 2 is : [(1, 1), (2, 5), (3, 6), (4, 1), (5, 5), (6, 6)]

方法 2:使用 Zip() 方法

使用 Zip() 關鍵字也可以幫助我們壓縮兩個不同大小的清單。這裡我們可以在循環中使用特定的關鍵字。

# using Zip()

# define the list
num_list = [1, 2, 3, 4] # numerical list
str_list = ['one', 'two', 'three', 'four', 'none', 'none'] #string list

# zip the lists with using zip()

zipped_list = [(num, s) for num, s in zip(num_list, str_list)]
print(zipped_list)

正如我們在上面的程式碼中看到的,我們有兩個不同大小的不同列表,我們使用 zip() 附加列表元素並壓縮列表。

輸出

以下程式碼的輸出為:

[(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]

方法三:使用Itertools

這是壓縮兩個不同大小的清單的經典方法之一。這裡我們將使用 Itertools 來壓縮清單。

# using the itertools 

# itertools + cycle

# import the cycle from itertools
from itertools import cycle

# define two different lists
list1 = [1,2,3,4,5,6,7]
list2 = [10, 50, 21]

# print the list1 and list2
print ("The input list 1 is : " + str(list1))
print ("The input list 2 is : " + str(list2))

# now use the cycle imported from itertools 
res = list(zip(list1, cycle(list2))
      if len(list1) > len(list2) #check for conditions
      else zip(cycle(list1), list2))

# printing the zipped list
print ("The Zip List from List 1 and 2 is: " + str(res))

正如我們在上面的程式碼中看到的,itertools庫已經安裝並且循環是從它導入的。

然後我們定義了兩個不同大小的清單並列印了相同的清單。接下來,循環用於透過將兩個列表傳遞到同一個列表來壓縮列表。

輸出

這段程式碼的輸出是:

The input list 1 is : [1, 2, 3, 4, 5, 6, 7] 
The input list 2 is : [10, 50, 21] 
The Zip List from List 1 and 2 is : [(1, 10), (2, 50), (3, 21), (4, 10), (5, 50), (6, 21), (7, 10)]

結論

在本文中,我們討論了清單、清單的壓縮操作是什麼、相同的應用程式是什麼以及如何在 Python 中壓縮兩個不同大小的清單。

我們總共討論了 3 種方法,使用這些方法可以在 Python 中壓縮列表,任何人都可以根據問題陳述和要求來壓縮列表。本文將幫助人們了解清單的壓縮操作,並幫助人們在需要時執行相同的操作。

以上是在Python中壓縮不同大小的列表的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除