iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
  • 元組:
    -Tuple (元組) 和 list (列表) 都是 Python 中用來儲存一組有序元素的資料結構。
    -索引 (index):從 0 開始,用來表示元素在序列中的位置。
    -不可變性 (immutability):Tuple 的一個重要特徵是不可變的,一旦創建,就不能修改其中的元素。而 list 是可變的,可以隨時添加、刪除或修改元素。
    -舉例:
    https://ithelp.ithome.com.tw/upload/images/20240925/20168364dl8Fhal5Bp.png

  • 元組不可做的:
    -元組沒有 sort() 方法,因為元組是不可變的,無法排序。
    -元組沒有 append() 方法,無法新增元素。
    -元組沒有 reverse() 方法,無法反轉元素順序。

  • 元組與賦值:
    -將元組放在賦值語句的左邊。
    -通常我們會將一個值賦給一個變數,但 Python 允許我們一次將一個元組中的多個值,分別賦給多個變數。
    -左邊元組的元素數量必須和右邊元組的元素數量一致。
    -舉例:
    https://ithelp.ithome.com.tw/upload/images/20240925/20168364qOYzTKPaNQ.png

  • 元組與字典:items()方法:
    -功能: 返回一個包含字典中所有鍵值對的元組列表。
    -元組結構: 每個元組都包含兩個元素:鍵 (key) 和值 (value)。
    -舉例:
    https://ithelp.ithome.com.tw/upload/images/20240925/201683643VxpSTWJcL.png

  • 元組是可比較大小的:
    -可以利用比較運算子(如 <、>、== 等)來比較兩個元組的大小。
    -比較規則:

  1. 從左到右逐一比較對應元素:
    ◆ 如果兩個元組對應位置的元素不相等,則直接根據這個元素的大小關係確定兩個元組的大小關係。
    ◆ 如果對應位置的元素相等,則繼續比較下一對元素。
  2. 直到找到不同元素或比較完所有元素:
    ◆ 如果比較完所有元素都相等,則認為兩個元組相等。
    ◆ 如果在比較過程中找到不同的元素,則根據該元素的大小關係確定兩個元組的大小關係。
    -舉例:
    https://ithelp.ithome.com.tw/upload/images/20240925/20168364bpLYqlW7ig.png
  • 使用sort()函數:
    -我們可以用內建的sorted()函數來更直接地實現排序。
    -sorted()函數接受一個序列(例如列表、元組)作為參數,並返回一個排序後的序列。
    -舉例:
    https://ithelp.ithome.com.tw/upload/images/20240925/20168364XAReSpFLmf.png

-程式碼作用:
◆ 創建一個字典。
◆ 將字典的鍵值對轉換成一個列表並排序。
◆ 遍歷排序後的列表,打印出每個鍵值對。

  • 根據值(values)而非鍵(key)排序
    -如果我們能建立一個形式為 (value, key) 的元組列表,我們就能根據值來排序。
    -我們用一個 for 迴圈來做到這點,這個迴圈創建了一個元組列表。
    -舉例:
    https://ithelp.ithome.com.tw/upload/images/20240925/20168364wvZTJHrAZh.png

-程式碼說明:
1.創建一個元組列表
◆ c = {'a':10, 'b':1, 'c':22}: 定義一個字典 c,其中鍵是字母,值是數字。
◆ tmp = list(): 創建一個空列表 tmp,用來存放轉換後的元組。
◆ for k, v in c.items():: 這個 for 迴圈會遍歷字典 c 中的所有鍵值對。
■ 代表鍵(key),v 代表值(value)。
◆ tmp.append((v, k)): 將每個鍵值對轉換成一個元組,其中值放在前面,鍵放在後面,然後將這個元組添加到列表 tmp 中。
2. 根據值進行排序
◆ tmp = sorted(tmp, reverse=True):
■ sorted(tmp):對列表 tmp 進行排序,預設是升序。
■ reverse=True:指定排序方式為降序,也就是按照值從大到小排序。
3. 打印結果
◆ print(tmp): 打印排序後的列表,可以看到元組已經按照值的大小從大到小排列了。

以上圖片皆出自於Coursera上的課程「Python for Everybody」來自University of Michigan。


上一篇
Day10.字典Dictionaries
下一篇
Day12. 正規表達式Regular Expressions
系列文
Python學習馬拉松:30天挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言