天天看點

捋一捋Python中的Tuple那麼元組上面能做啥操作?list 轉tuple總結

今天學委都在寫代碼,寫了很多篇,這次我們講解元組Tuple,不要錯過!

什麼是Tuple

Tuple 是Python特有的一種類型,它有點像清單但是也不完全是。

學委意識到這上面的内容還是過于技術表達:簡單來說元組,可以了解為一組元素的構成的一個小組。比如大學做課題幾個人一組,可以了解為一個元組。(後面想到更好的例子再來更新)。

如果簡單粗暴了解,那麼我們暫且稱tuple為限定長度的list,不會過份!

這是tuple

(1,2,3)

擷取tuple類型資料的元素:

tup = (1,2,3)

tup[0] #擷取第一個下标對應元素

tup[0:2] #擷取子元組

更多操作變種不說了,這個在學委的Python 基礎上篇中講述了。

tuple的增删查改

基本别想了,Python中的元組是不允許篡改。

但是,有個前提,tuple中元素如果非基礎資料類型,也就是引用類型。

那麼我們是有辦法修改它内部狀态的,如下圖:

捋一捋Python中的Tuple那麼元組上面能做啥操作?list 轉tuple總結
我們可以檢視嘗試修改’t[0]’ 的值的時候Python解釋器馬上抛出錯誤了!

那麼元組上面能做啥操作?

基本上隻有加法和乘法,效果就是生成擴充的新元組。

有點像1+1 = 11這個意思吧。

學委準備了下面的代碼:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 6:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : tupledemo2.py
# @Project : hello

tup = (3, 3, 3)
# new_tup = tup - tup #TypeError: unsupported operand type(s) for -: 'tuple' and 'tuple'
new_tup = tup + tup
print(new_tup)

# 學委還是很喜歡三連的,666
new_tup = tup * 3
print("三連開光過的tuple:", new_tup)
# new_tup = tup / 3 # 不支援下次一定啊!

print("'666' in new_tuple ? ", '666' in new_tup)
      

讀者可以直接複制運作代碼,學委補充了運作效果圖:

捋一捋Python中的Tuple那麼元組上面能做啥操作?list 轉tuple總結

list 轉tuple

前面我們粗暴的把tuple當做限定長度的list了(有些場景可以很有用,比如定長list)。

是以我們有時候也會把list轉成tuple,照樣擷取元素進行業務操作。

下面學委準備了一些代碼展示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 6:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : tupledemo3.py
# @Project : hello


tup = (3, 3, 3)

new_tup = ([x * 2 for x in tup])
print("加倍過的tuple:", new_tup)

list = [6, 6, 6]
new_tup = tuple(list)
print("把list轉tuple: ", new_tup)
if 6 in new_tup:
    print("new_tup has 6 !")
      

運作效果如下:

捋一捋Python中的Tuple那麼元組上面能做啥操作?list 轉tuple總結

總結

除了上面介紹的一些函數,我們還能使用内置的一些函數(max/min等)對tuple進行操作,這些函數也能對string, list 等進行操作,可以關注訂閱後面再單獨總結一下。