Python【列表 字典 元組】

来源:https://www.cnblogs.com/CH-TNT/archive/2019/07/21/11223201.html
-Advertisement-
Play Games

列表列表用中括弧[ ]把各種數據框起來,每一個數據叫作“元素”。每個元素之間都要用英文逗號隔開各種類型的數據(整數/浮點數/字元串)————————————————————————————從列表提取單個元素每個元素都有自己的位置編號(即偏移量) 1.偏移量是從0開始的2.列表名後加帶偏移量的中括弧, ...


列表
列表用中括弧[ ]把各種數據框起來,每一個數據叫作“元素”。
每個元素之間都要用英文逗號隔開
各種類型的數據(整數/浮點數/字元串)
————————————————————————————
從列表提取單個元素
每個元素都有自己的位置編號(即偏移量)

1.偏移量是從0開始的
2.列表名後加帶偏移量的中括弧,就能取到相應位置的元素
students = ['小明','小紅','小剛']
print(students[0])
小明
—————————————————————————————
從列表提取多個元素
用冒號來截取列表元素的操作叫作切片
將列表的某個片段拿出來處理

列表切片口訣
左右空,取到頭;左要取,右不取
#冒號左邊空,就要從偏移量為0的元素開始取;右邊空,就要取到列表的最後一個元素
#冒號左邊數字對應的元素要拿,右邊的不動

>>> list2 = [5,6,7,8,9]
>>> print(list2[:])
[5, 6, 7, 8, 9]
>>> print(list2[2:])
[7, 8, 9]
>>> print(list2[:2])
[5, 6]
>>> print(list2[1:3])
[6, 7]
>>> print(list2[2:4])
[7, 8]
————————————————————————
切片和偏移量對比
偏移量取到的是列表中的元素,而切片則是截取了列表的某部分

>>> students = ['小明','小紅','小剛']
>>> print(students[2])
小剛
>>> print(students[2:])
['小剛']
————————————————————————————
給列表增加/刪除元素
append()函數
append()給列表增加元素,每次只能增加一個元素
報錯信息

>>> list3.append(4,5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)


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

>>> list3.append([4,5]) #列表內部支持嵌套,單個列表也會視為一個元素
>>> print(list3)
[1, 2, 3, [4, 5]]
————————————————————————————
合併列表
把A和B的成績合併成一個列表,並按照從低到高的順序排序
list1 = [91, 95, 97, 99] #A
list2 = [92, 93, 96, 98] #B
# 把 A 組成績賦值給一個新列表,用來存合併的成績——這個細節要註意!
list3 =list1
list3.extend(list2) #list3 = list1 + list2也可以
print(list3)

[91, 95, 97, 99, 92, 93, 96, 98]

list3.sort()
print(list3)

[91, 92, 93, 95, 96, 97, 98, 99]

列表排序

————————————————————————————
del語句
students = ['小明','小紅','小剛','小美']
del students[3] #語法是:del 列表名[元素的索引]
print(students)
['小明', '小紅', '小剛']

既能刪除一個元素,也可以刪除多個
(原理和切片類似,左取右不取)

 

 


###############################################
數據類型:字典
1.有名稱;
2.要用=賦值;
3.用逗號作為元素間的分隔符
字典的外層是大括弧{ }
字典的元素是由一個個鍵值對構成的,用英文冒號連接
scores = {'小明':95,'小紅':90,'小剛':90}
字典中的鍵具備唯一性,而值可重覆

擴展知識:len()函數
得出一個列表或者字典的長度(元素個數)

>>> students = ['小明','小紅','小剛']
>>> scores = {'小明':95,'小紅':90,'小剛':90}
>>> print(len(students))
3
>>> print(len(scores))
3

字典提取元素
字典靠的是鍵
scores = {'小明': 95, '小紅': 90, '小剛': 90}
print(scores['小明']) #print字典名[字典的鍵]
95

給字典增加/刪除元素

刪除
del 字典名[鍵]

增加
字典名[鍵] = 值

scores = {'小明':95,'小紅':90,'小剛':90}
del scores['小剛']
scores['小剛'] = 92
scores['小美'] = 85
print(scores)
{'小明': 95, '小紅': 90, '小剛': 92, '小美': 85}
——————————————————————————
擴展
Python字典 items()函數以列表返回可遍歷的(鍵, 值) 元組數組。
語法:
dict.items()
列子:
scores = {'語文':89, '數學':95, '英語':80}
print(scores.items())
dict_items([('語文', 89), ('數學', 95), ('英語', 80)]) #列表包含元組數組

遍歷字典項
for a in scores.items():
  print(a)
('語文', 89) #元組數組
('數學', 95)
('英語', 80)

遍歷字典值
for a,b in scores.items(): #寫成 for (a,b) in scores.items(): 或for a, b in scores.items():
  print(a,b)
語文 89
數學 95
英語 80

 

#####################################################
列表和字典的異同

不同點

元素是有自己明確的“位置”的,
所以即使看似相同的元素,
只要在列表所處的位置不同,
它們就是兩個不同的列表
>>> students1 = ['小明','小紅','小剛']
>>> students2 = ['小剛','小明','小紅']
>>> print(students1 == students2)
False

字典相比起來就顯得隨和很多,
調動順序也不影響。
因為列表中的數據是有序排列的,
而字典中的數據是隨機排列的
>>> scores1 = {'小明':95,'小紅':90,'小剛':100}
>>> scores2 = {'小剛':100,'小明':95,'小紅':90}
>>> print(scores1 == scores2)
True
總結:列表有序,要用偏移量定位;字典無序,便通過唯一的鍵來取值
————————————————————————————————————
相同點
1.修改元素,可以用賦值
list1 = ['小明','小紅','小剛','小美']
list1[1] = '小藍'
print(list1)
['小明', '小藍', '小剛', '小美']

dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)
{'小明': '女'}

#del語句通常是用來刪除確定不需要的鍵值對
2.支持任意嵌套

列表嵌套
students = [['小明','小紅','小剛','小美'],['小強','小蘭','小偉','小芳']]
print(students[1][3]) #先判斷是列表第幾個元素,再判斷列表中要取出元素的偏移量
小芳

字典嵌套
scores = {
'第一組':{'小明':95,'小紅':90,'小剛':100,'小美':85},
'第二組':{'小強':99,'小蘭':89,'小偉':93,'小芳':88}
}
print(scores['第二組']['小芳']) #先找到字典的鍵,再找出要取出的值對應的鍵
88

總結:最外層是什麼就是什麼嵌套,提取多級嵌套的列表/字典時,要一層一層地取出來
任意嵌套的列子
students = {
'第一組':['小明','小紅','小剛','小美'],
'第二組':['小強','小蘭','小偉','小芳']
}
scores = [
{'小明':95,'小紅':90,'小剛':100,'小美':85},
{'小強':99,'小蘭':89,'小偉':93,'小芳':88}
]
print(students['第一組'][2])
小剛
print(scores[0]['小剛'])
100
##########################
元組tuple
小括弧來包的
元組和列表都是序列,提取的方式也是偏移量
支持任意的嵌套
tuple1 = ('A','B')
list2 = (('A','B'),('C','D'),('E','F'))

print(tuple1[0])
A
print(list2[1][1])
D

*取出 反面角色 狼 *

townee = [
{'海底王國':['小美人魚''海之王''小美人魚的祖母''五位姐姐'],'上層世界':['王子','鄰國公主']},
'醜小鴨','堅定的錫兵','睡美人','青蛙王子',
[{'主角':'小紅帽','配角1':'外婆','配角2':'獵人'},{'反面角色':'狼'}]
]

print(townee[5][1]['反面角色'])

 


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

-Advertisement-
Play Games
更多相關文章
  • 看到一篇非常全面的SQL優化文章,在開發的工作中往往不考慮性能上的缺失(在一開始的時候數據量不大也看不出速度上的區別)。但寫的越多越應該規範一下寫法。 原文鏈接:http://www.jfox.info/SQL-you-hua.html By Lee - Last updated: 星期五, 五月 ...
  • 最近在網上偶然看到此題: 有兩個序列a,b,大小都為n,序列元素的值任意整形數,無序; 要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小 經過一番思索,我試著用窮舉法來解一下這道題,大概思路如下: 1、分別求a,b序列元素之和sum_a、sum_b2、算出min = ...
  • 微服務高可用方案 一、微服務的高可用 在註冊中心、配置中心高可用方案之前,瞭解一下註冊中心的工作原理,下麵分為兩個部分來解釋,一是註冊中心和各個微服務的註冊表的獲取與同步,二是註冊中心如何去維護註冊表。 1.1、註冊表的獲取與同步 Eureka Server和Eureka Client之間的關係,通 ...
  • 異常   Java虛擬機異常使用Throwable或其子類的實例來表示,拋異常本質上是程式控制權的一種即時的、非局部的轉換,即從拋出的地方轉換至處理異常的地方。   導致異常的原因 執行了athrow位元組碼指令。 虛擬機同步檢測到程式發生了非正常的執行情況,這 ...
  • \t製表符>>> print('python')python>>> print("python")python>>> print('\tpython') python\n換行符>>> print("Languages:\nPython\nC\nJavaScript")Languages:Python... ...
  • SpringMVC是一個一種基於Java的實現MVC設計模型的請求驅動類型的輕量級web框架 SpringMVC的入門案例 1. 2.導入相關jar包 3,在web.xml中配置前端控制器 4.編寫控制器類 5.開啟掃描註解 6.編寫兩個JSP 首頁 成功頁面 入門案例的流程總結 1.伺服器啟動,加 ...
  • # 電影天堂爬蟲 **今日目標** 爬取電影天堂前30頁最新電影以及下載地址 ```python # 1. 列印程式執行時間 # 2. 數據爬下來後做處理(字元串),定義成字典 # 3. 一條龍: 獲取 -> 調用解析 -> 數據處理 from urllib import request impor... ...
  • 第七章 父 子關係文檔 打虎親兄弟,上陣父子兵。 本章作為 複雜搜索 的鋪墊,介紹父子文檔是為了更好的介紹複雜場景下的ES操作。 在非關係型資料庫資料庫中,我們常常會有表與表的關聯查詢。例如學生表和成績表的關聯查詢就能查出學會的信息和成績信息。在ES中,父子關係文檔就類似於表的關聯查詢。 背景 ES ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...