目錄
簡介
什麼是非均勻元組壓縮?
壓縮不均勻元組
方法一:使用For迴圈和列舉
輸出
方法 2:使用列表理解
Output
方法三:使用Numpy函式庫
結論
首頁 後端開發 Python教學 如何在Python中壓縮不均勻的元組

如何在Python中壓縮不均勻的元組

Aug 30, 2023 am 11:09 AM
python 壓縮 元組

如何在Python中壓縮不均勻的元組

簡介

在Python中,元組是廣泛使用的根據需求儲存和處理資料的方法之一。元組中涉及很多操作,其中資料根據問題陳述的要求進行預處理和轉換。壓縮操作是壓縮不同元組的最常見和最廣泛使用的操作之一。

在本文中,我們將討論 Python 中不均勻元組的壓縮、不均勻元組壓縮的實際意義,以及透過程式碼解釋執行相同操作的不同方法。本文將幫助人們了解壓縮不均勻元組背後的核心思想,並幫助人們在必要時做同樣的事情。

現在讓我們先討論Python中壓縮和Python中不均勻元組壓縮的意義。

什麼是非均勻元組壓縮?

在Python中,zip或zipping這個字表示我們正在將不同元組的元素相加,這意味著我們正在製作一對不同元組的元素並將其儲存在單一公共元組中。

例如,如果我們有兩個像這樣的元組:

T1 = (1, 2, 3)

T2 = (“一”, “二”, “三”)

然後對這些元組進行壓縮操作將給出以下輸出:

T_Zip = ((, “一個”), (2, “兩個”), (3, “三個”))

這裡的不均勻元組是指兩個元組的大小或長度不相同,即其中一個元組的大小比另一個元組小或大。對於具有相同大小或長度的元組來說,壓縮操作是一項非常簡單的任務,但是當壓縮兩個不同大小或不均勻的元組時,壓縮操作就變得非常複雜。

但是,有一些方法可以用來壓縮兩個不均勻的元組。讓我們一一討論一下。

壓縮不均勻元組

在 Python 中,我們主要使用三種方式來壓縮不均勻元組。

  • 使用 For 迴圈和枚舉

  • 使用列表理解

  • #使用 Numpy 函式庫

方法一:使用For迴圈和列舉

我們可以使用 for 迴圈和枚舉函數來壓縮不均勻元組。它是執行此操作的最簡單且有效的客戶端方法之一。

# using for loop and enumerate 

# define the tuples
test_tup1 = (7, 8, 4, 5)
test_tup2 = (1, 5, 6)

# print the input tuples
print("The input  tuple 1 is : " + str(test_tup1))
print("The input  tuple 2 is : " + str(test_tup2))

res = []


# use for loop with enumerate 
for i, j in enumerate(test_tup1):
  res.append((j, test_tup2[i % len(test_tup2)]))

# Print the final resultant tuple after zipping tuple 1 and 2
print("The output zipped tuple from tuple 1 and 2 is : " + str(res))
登入後複製

正如我們在上面的程式碼中所看到的,元組 1 和 2 被 () 拒絕,並且它們的大小或長度不同。

現在,for 迴圈與枚舉一起使用,枚舉附加元組 1 和元組 2 元素並以元組格式給出輸出。

輸出

以下程式碼的輸出為:

The input tuple 1 is : (7, 8, 4, 5) 
The input tuple 2 is : (1, 5, 6) 
The output zipped tuple from tuple 1 and 2 is : [(7, 1), (8, 5), (4, 6), (5, 1)]
登入後複製
登入後複製

方法 2:使用列表理解

也可以使用列表理解來壓縮兩個不均勻元組。這裡可以使用三元運算子。

# using list comprehension

# define the tuples 
tup1 = (7, 8, 4, 5)
tup2 = (1, 5, 6)

# print the input tuples 
print("The input tuple 1 is : " + str(tup1))
print("The input tuple 2 is : " + str(tup2))

# define if else conditions
res = [(tup1[i], tup2[i % len(tup2)])
  if len(tup1) > len(tup2)

  else (tup1[i % len(tup1)], tup2[i])

  # use for loop on tuple 1 and 2
  for i in range(max(len(tup1), len(tup2)))]

#Print the final resultant tuple after zipping tuple 1 and 2
print(" The output zipped tuple from tuple 1 and 2 is :" + str(res))
登入後複製

正如我們在上面的程式碼中看到的,定義了兩個不同大小的元組,然後編寫if else 條件,其中首先檢查元組的長度,最後的for 循環附加兩個元組並返回輸出。

Output

以下程式碼的輸出為:

The input tuple 1 is : (7, 8, 4, 5) 
The input tuple 2 is : (1, 5, 6) 
The output zipped tuple from tuple 1 and 2 is : [(7, 1), (8, 5), (4, 6), (5, 1)]
登入後複製
登入後複製

方法三:使用Numpy函式庫

Numpy 是最廣泛使用的用於對資料執行操作的庫之一。這裡使用數組格式的數據,我們幾乎可以做任何事情,並使用 numpy 將數據轉換為任何內容。

#using numpy module to zip the uneven tuples 

# Importing the numpy module
import numpy as np

# define the tuples
test_tup1 = (7, 8, 4, 5)
test_tup2 = (1, 5, 6)

# convert the tuples into array format
arr1 = np.array(test_tup1)
arr2 = np.array(test_tup2)

# use np.tile 
arr2_tiled = np.tile(arr2, (len(arr1) // len(arr2) + 1))[:len(arr1)]

#use column_stack on array 1 and tiled array 2 to zip the tuples 
res_arr = np.column_stack((arr1, arr2_tiled))

# convert the array output to the tuple
res = tuple(map(tuple, res_arr))

# Print the final resultant tuple after zipping tuple 1 and 2
print("The output zipped tuple from tuple 1 and 2 is : " + str(res))
登入後複製

如我們在上面的程式碼中所看到的,我們首先匯入了 numpy 函式庫,然後定義了兩個不同大小的元組。

然後如上所述,numpy 庫需要數組格式數據才能處理相同的數據,因此元組被傳遞到 np.array,後者將數據轉換為數組格式。

一旦我們有了陣列形式的元組,np.column_stack就被用來追加數組的元素,並且元組被壓縮。

然後使用 tuple() 函數再次將最終數組轉換為元組。

Output

以下程式碼的輸出為:

The output zipped tuple from tuple 1 and 2 is : ((7, 1), (8, 5), (4, 6), (5, 1))
登入後複製

結論

在本文中,我們討論了兩個不均勻元組或兩個不同大小(長度)元組的壓縮操作。上面討論的壓縮不均勻元組的三種不同方法將幫助人們理解壓縮操作,並幫助人們在必要時執行相同的操作。

以上是如何在Python中壓縮不均勻的元組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1319
25
PHP教程
1269
29
C# 教程
1248
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang vs. Python:性能和可伸縮性 Golang vs. Python:性能和可伸縮性 Apr 19, 2025 am 12:18 AM

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

See all articles