Python_實用入門篇_09

来源:https://www.cnblogs.com/RedMolly/archive/2018/08/25/9534677.html
-Advertisement-
Play Games

Python序列內置類型之元組類型詳解 1.元祖的概念 Python中的元組與列表類似,都是一個序列,不同的是元組的元素不能修改而已。 2.元組的創建 元組使用小括弧,列表使用方括弧。 註意:元組中只包含一個元素時,需要在元素後面添加逗號,否則括弧會被當作運算符使用。 3.Python元組操作 1. ...


Python序列內置類型之元組類型詳解 


1.元組的概念

    Python中的元組與列表類似,都是一個序列,不同的是元組的元素不能修改而已。

2.元組的創建

    元組使用小括弧,列表使用方括弧。

tup = ('cdx', 'red',  'molly')

註意:元組中只包含一個元素時,需要在元素後面添加逗號,否則括弧會被當作運算符使用。

tup1 = (50)
print(type(tup1))     # 不加逗號,類型為整型
>>> <class 'int'>

tup1 = (50,)
print(type(tup1))     # 加上逗號,類型為元組
>>> <class 'tuple'>

3.元組操作

    1.索引與截取(訪問元組)

#索引
tup = (1, 2, 3, 4, 5, 6, 7 ) print(tup[2]) >>> 3
#截取
tup = (1, 2, 3, 4, 5, 6, 7 )
print(tup[1:])
>>>2,3,4,5,6,7

    2.增刪(元組中的元素值是不允許修改的,只能創建一個新元組然後存儲值。我們可以對元組進行連接組合,由於元組中的元素值是不允許刪除的,我們只能使用del語句來刪除整個元組)

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz')

#修改元組元素操作是非法的。因為元組不能改變
tup1[0] = 100#報錯

#創建一個新的元組
tup3 = tup1 + tup2;
print (tup3)
>>>(12, 34.56, 'abc', 'xyz')

#刪除一個元組
tup = ('cdx','redmolly')
del tup
print (tup)
#會報錯
Traceback (most recent call last):
File "test.py", line 8, in <module>

     3.元組的運算(與字元串一樣,元組之間可以使用 + 號和 * 號進行運算。這就意味著他們可以組合和複製,運算後會生成一個新的元組。)

Python 表達式結果描述
len((1, 2, 3)) 3 計算元素個數
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 連接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 複製
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print (x,) 1 2 3 迭代

4.元組的內置函數

序號方法及描述實例
1 len(tuple)
計算元組元素個數。
>>> tuple1 = ('Google', 'Runoob', 'Taobao')
>>> len(tuple1)
3
>>>
2 max(tuple)
返回元組中元素最大值。
>>> tuple2 = ('5', '4', '8')
>>> max(tuple2)
'8'
>>>
3 min(tuple)
返回元組中元素最小值。
>>> tuple2 = ('5', '4', '8')
>>> min(tuple2)
'4'
>>>
4 tuple(seq)
將列表轉換為元組。
>>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
>>> tuple1=tuple(list1)
>>> tuple1
('Google', 'Taobao', 'Runoob', 'Baidu')

5.元組的一些高級補充

    1.tuple元素不可變有一種特殊情況,當元素是可變對象時。對象內部屬性是可以修改的。tuple的不可變限制只是在一個緯度上:元素的類型。實現理解,tuple的元素所保存的內容(數值或記憶體地址)是不允許修改的,但地址映射的對象自身是可以修改的。舉個例子你就懂了。

a = (1,[3,2])
a[1][0] = 1
print(a)
>>>(1, [1, 2])
a[1].append(3)
print(a)
>>>(1, [1, 2, 3])

    2.namedtuple(具名元組)

        1.具名元組:因為元組的局限性:不能為元組內部的數據進行命名,所以往往我們並不知道一個元組所要表達的意義,所以引入了 collections.namedtuple這個工廠函數,來構造一個帶欄位名的元組。所謂工廠函數就是一個加工方法,把數據放進去,加工好了拿出來就是成品。比如(tuple = (12,"cdx","大三")),創建這樣一個元組,裡面的數據沒有名字的話,不知道是幹啥的。

        2.使用格式:collections.namedtuple(typename, field_names, verbose=False, rename=False)

import collections
#User = collections.namedtuple('User', ['name', 'age', 'id'])
user = User('tester', '22', '464643123')
print(user)
>>>User(name='tester', age='22', id='464643123')

PS(想為元組增加一些值,可以用一些其他辦法,大家自己想想哦)

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • springboot的自動配置功能,主要流程如下: 1 啟動的時候載入我們的主配置類,也就是我們的入口類;從而開啟我們的自動配置配置功能,這個是通過@EnableAutoConfiguration註解實現的; 2 @EnableautoConfiguration利用其註解類中的方法:EnableAu ...
  • 上文已經總結了AQS的前世今生,有了這個基礎我們就可以來進一步學習併發工具類。首先我們要學習的就是ReentrantLock,本文將從ReentrantLock的產生背景、源碼原理解析和應用來學習ReentrantLock這個併發工具類。 1、 產生背景 前面我們已經學習過了synchronized ...
  • 1、繼承 2、抽象類 3、綜合案例---員工類系列定義 ...
  • Python中的For迴圈 1.For迴圈語句 1.Python for迴圈可以遍歷任何序列類型,如一個列表或者一個字元串。如下代碼應該能理解,依次輸出序列元素。 2.for else語句(就是在迴圈結束後,執行else的內容) 3.for迴圈中的break語句與countinue語句(條件達成時, ...
  • 一、三元表達式的使用 name = 'alex' age = 20 if name == 'alex' else 22 print(age) 二、列表推導式(聲明式編程) l = ['alex%s' %i for i in range(10) if i > 5] print(l) 三、生成器表達式 ...
  • 前言 Python 是一種極具可讀性和通用性的編程語言。Python 這個名字的靈感來自於英國喜劇團體 Monty Python,它的開發團隊有一個重要的基礎目標,就是使語言使用起來很有趣。Python 易於設置,並且是用相對直接的風格來編寫,對錯誤會提供即時反饋,對初學者而言是個很好的選擇。 Py ...
  • 我們在coding的時候,會經常遇到要求我們處理InterruptedException的情況,本文將解釋如何正確處理此異常以及背後的原因。 ...
  • 相信很多微信用戶在使用微信給朋友,同事發送相冊中的文件時,微信會顯示你手機中的視頻文件,這樣很不方便. 如果要完全不顯示視頻文件: 隨便在手機中建立一個文件夾,名字叫 ".nomedia",把視頻文件丟進去就行了. 如何隱藏你希望隱藏的視頻文件: 隨便在手機中建立一個文件夾,名字叫 ".nomedi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...