Python基礎-列表、元組、字典、字元串(精簡解析),全網最齊全。

来源:https://www.cnblogs.com/xxxtony/archive/2019/09/21/11558702.html
-Advertisement-
Play Games

一.列表 1.列表的定義及格式: 列表是個有序的,可修改的,元素用逗號隔開,用中括弧包圍的序列。 格式:變數名 = [ 元素1,元素2,元素3...] 作用:存儲多個數據 列表推導式:重點 2.列表的索引: 通過索引獲取表中的書記,索引從0開始 註意:不要索引越界 s = [ 'hello',a,b ...


一.列表

=====================================================
1.列表的定義及格式:

列表是個有序的,可修改的,元素用逗號隔開,用中括弧包圍的序列。

格式:變數名 = [ 元素1,元素2,元素3...]

作用:存儲多個數據

列表推導式:重點

 

 1 '''列表推導式'''
 2 list_t = [i for i in range(10)]
 3 print(list_t)  # [0,1,2,3,4,5,6,7,8,9]
 4 
 5 '''實例'''
 6 print('實例:')
 7 for i in range(101):
 8     if i % 2 == 0:
 9         print(i)
10 
11 print("等同於實例")
12 listDouble = [i for i in range(101) if i % 2 == 0]
13 print(listDouble)

 

 

 

2.列表的索引:

通過索引獲取表中的書記,索引從0開始

註意:不要索引越界

s = [ 'hello',a,b,c ]

print(s[1]) 

輸出結果:a   

用for迴圈遍歷列表:

name = [ 'zs','ls','ww' ]

for i in name:

      print( i )

輸出結果:zs

                  ls

                  ww

3.列表的添加:append(),  insert(),  extend() 方法。

 1 # append 
 2 lst = ['悟空','八戒','唐僧']       
 3  
 4 lst.append('白骨精')      # append   向列表末尾增加指定元素
 5  
 6 print(lst)
 7  
 8 # 輸出結果:   ['悟空', '八戒', '唐僧', '白骨精']
 9  
10 -------------------------------------------------------------------------------------------
11  # insert 
12 lst = ['悟空','八戒','唐僧']
13  
14 lst.insert(1,'白骨精')     # insert  往列表制定位置添加制定元素,負索引倒敘插入。超過索引插入末尾
15  
16 print(lst)
17  
18 # 輸出結果: ['悟空', '白骨精', '八戒', '唐僧']
19 ------------------------------------------------------------------------------------------
20 #extend
21  
22 lst = ['悟空','八戒','唐僧']
23  
24 lst1 = ['悟空','八戒','唐僧','悟空']
25  
26 lst.extend(lst1)                # 將一個列表中的元素添加到另一個列表的尾部合併,不會去重。
27  
28 print(lst)
29  
30 # 輸出結果: ['悟空', '八戒', '唐僧', '悟空', '八戒', '唐僧', '悟空']

4.列表的刪除:pop(),remove(),clear(),del 方法。

 1 # pop  刪除指定索引位上的元素,預設刪除-1的數據
 2  
 3 lst = ['悟空','八戒','唐僧']
 4  
 5 lst.pop(1)
 6  
 7 print(lst)
 8  
 9 輸出結果:['悟空', '唐僧']
10  
11 lst = ['悟空','八戒','唐僧']
12  
13 lst.pop()
14  
15 print(lst)
16  
17 輸出結果:['悟空', '八戒']
18 -----------------------------------------------------------------------------------------
19 # remove 從左往右刪除指定的元素,
20  
21 lst = ['悟空','八戒','唐僧']
22  
23 lst.remove('八戒')
24  
25 print(lst)
26  
27 # 輸出結果:['悟空', '唐僧']
28 -----------------------------------------------------------------------------------------
29 # clear   清空列表中所有的元素,返回一個空列表
30  
31 lst = ['悟空', '八戒', '唐僧']
32  
33  
34  
35 lst.clear()
36  
37  
38  
39 print(lst)
40  
41 輸出結果:[ ]
42 -----------------------------------------------------------------------------------------
43 # del    刪除整個列表或列表的數據,del是python內置功能,不是列表獨有的
44  
45  
46 ​lst = ['悟空', '八戒', '唐僧']
47  
48 del lst           
49  
50 print(lst)
51  
52 輸出結果:​​​​NameError: name 'lst' is not defined   (報錯)因為不存在,所有報錯
=============================
del 還能指定刪除某位置的數據
=============================
1 newL = [5, 8, 6, 5, 74, 5, 5, 46, 1]
2 del newL[8]  # # 刪除指定索引值為8的數據,這裡刪除最後一個數據1
3 print(newL)  # [5, 8, 6, 5, 74, 5, 5, 46]

 



 5.列表的查詢:count(),index() 方法。

1 # count 返回指定元素在列表的個數
2  
3 lst  = ['hello','world','hello','python']
4  
5 print(lst.count('hello'))  # 輸出2
1 lst = ['悟空', '八戒', '唐僧', '悟空']
2 num1 = lst.index('悟空')  # index 查看指定數據在列表的索引位置
3 print("悟空在", num1)  # 這裡輸出0

6.列表的修改:直接修改,方式如下:list[要修改的數據的索引值]=新的數據

1 lst = ['悟空', '八戒', '唐僧']  
2  
3 lst[0] = '白龍馬'   # 將列表第一位數值為替換為‘白龍馬’
4  
5 print(lst)
6  
7 輸出結果:['白龍馬', '八戒', '唐僧']

7.列表的切片:

 1 '''列表的切片'''
 2 listCut = [i for i in range(20) if i % 2 != 0]  # 生成0-20所有單數的列表
 3 print("例子列表", listCut)  # 輸出:例子列表 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
 4 # 輸出:例子列表 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
 5 print(listCut[0: 6])  # 0到5左邊開始索引的數據 左閉右開(左邊0是包含索引值,右邊6是6之前的索引值)
 6 # 輸出[1, 3, 5, 7, 9, 11]
 7 print(listCut[::2])  # 每隔2個數字取一個值
 8 # 輸出[1, 5, 9, 13, 17]
 9 print(listCut[::-1])  # 逆序/反序排序 等同於List.reverse()
10 # 輸出[19, 17, 15, 13, 11, 9, 7, 5, 3, 1]
11 print(listCut[-4:])  # 取後四位,負數是右邊開始取
12 # 輸出[13, 15, 17, 19]
13 print(listCut[-4:-1])  # 右邊開始取,取後4位到後2位值,左閉右閉,(-4包括,-1包括)
14 # 輸出[13, 15, 17]

8.列表的排序和翻轉:sort(),reverse() 方法。

 1 sort() 按照ascii碼表順序進行排序
 2  
 3 lst = ['tom', 'james', 'jerry', 'zs', 'ls']
 4  
 5 lst.sort()
 6  
 7 print(lst)  # 從小到大排序
 8  
 9 輸出結果:['james', 'jerry', 'ls', 'tom', 'zs']
10  
11  
12 lst.sort(reverse=True)  # 有大到小排序
13  
14  
15 print(lst)
16  
17 輸出結果:['zs', 'tom', 'ls', 'jerry', 'james']
18 ------------------------------------------------------------------------------------
19 reverse()  將列表翻轉(逆序)
20  
21 lst = ['tom', 'james', 'jerry', 'zs', 'ls']
22  
23 lst.reverse()
24  
25 print(lst)
26  
27 輸出結果:['ls', 'zs', 'jerry', 'james', 'tom']

9.列表的拷貝:copy()方法。

 1 淺拷貝:
 2  
 3 lst1 = ['西施','貂蟬',['悟空','八戒']
 4  
 5 lst2 = lst1.copy()   #將lst1 的內容拷貝一份給lst2,  兩者的id 不一樣
 6  
 7 print(lst2)
 8  
 9 lst2[0] = '楊貴妃'   #lst2 中的西施改成楊貴妃
10  
11 print(lst2)
12  
13 輸出結果:['西施', '貂蟬', ['悟空', '八戒']
14          ['楊貴妃', '貂蟬', ['悟空', '八戒']
15  
16 ------------------------------------------------------------------------------------
17  
18 深拷貝:
19  
20 import copy
21  
22 lst1 = ['西施','貂蟬',['悟空','八戒']
23  
24 lst2 = copy.deepcopy(lst1)
25  
26 print(lst2)
27  
28 lst2[0] = '楊貴妃'
29  
30 print(lst2)
31  
32 輸出結果:['西施', '貂蟬', ['悟空', '八戒']
33          ['楊貴妃', '貂蟬', ['悟空', '八戒']

 

二.元祖

=====================================================
1.元組的定義及特點:

定義:

           通過()來定義:變數名=(1,2,3,4,) 。以逗號分割的,以小括弧包圍的序列。

           通過tuple函數定義: lst=[1,2,3,4] 變數名=tuple(lst)

特點:

            元組是有序的,不能更改的,由於元組不可變 ,所以遍歷元組要比列表快。

2.元組的訪問:

通過索引,預設從0開始

 1 通過索引,預設從0開始
 2  
 3 tup = (1,2.2,True,'hello')  #  獲得2.2的值,一定要註意索引越界的問題
 4  
 5  
 6 print(tup[1])
 7  
 8 # 輸出結果:2.2
 9 -------------------------------------------------------------------------------------------
10 通過切片:
11  
12 tup = (1,2.2,True,'hello')
13  
14 print(tup[0:4:2])
15  
16 # 輸出結果:(1,True)
17 -----------------------------------------------------------------------------------------
18 訪問多維元組:
19  
20 tup = (('zs',10),('ls',11),('ww',12))
21  
22 print(tup[1][0])
23  
24 # 輸出結果:ls

3.使用多個變數來接受元組的值:

 1 tup = (('zs',10),('ls',11),('ww',12))
 2  
 3 name,age,height,weight = ('zs',18,1.64,150)
 4  
 5 print(name)
 6  
 7 print(age)
 8  
 9 print(height)
10  
11 print(weight)
12  
13 for name, age in tup:     #for 迴圈遍歷多重元組,註意變數的數目一致性
14  
15     print(name,age)
16  
17  
18  
19 輸出結果:          zs
20                    18
21                    1.64
22                    150
23                    zs 10
24                    ls 11
25                    ww 12

  4.元組的方法:index(),count(),len() 方法。

 1 tup = ('a','b','c','c','b','a','x')
 2  
 3  
 4  
 5 print(tup.index('b'))  # index() 獲取數據在元組的索引值
 6  
 7  
 8  
 9 print(tup.index('a',2,len(tup)))   # len()獲取元組的長度值
10  
11  
12  
13 print(tup.count('a'))  # count() 獲取數據在元組的總個數
14  
15  
16  
17  
18 輸出結果: 1
19           
20          5
21              
22          2

5.一個逗號的魅力:

1 tup = (1,)
2  
3 print(tup)  # 輸出結果(1,)
4  
5 tup1 = (1)
6  
7 print(tup1)  # 輸出結果 1

 

三.字典

=====================================================

1.字典的定義及格式:

定義:字典是一個無序的,可以修改的,元素呈鍵對值的形式,以逗號分隔,大括弧包圍的序列。

格式:變數名={key:value,key:value}

註意:字典中的key是不可變的類型,value是可變類型的

定義如下:

 1 # 字典是無序的數據集合
 2 # 鍵(key)值(value)對
 3 # 鍵只能使用字元串,元組 ,數字(不可變),值可以是任何的數據類型
 4 tony = {
 5     "name": "TONY",
 6     "age": 27,
 7     "height": 1.73,
 8     "weight": 55,
 9       6: (6,),
10       (7,): ()
11 }
12 print(tony)
13 # 輸出為:{'name': 'TONY', 'age': 27, 'height': 1.73, 'weight': 55, 6: (6,), (7,): ()}

取值如下:

1 tony_dic = {"name": 'tony', "height": 1.73, (6,): (7,)}
2 # 字典的取值
3 print(tony_dic["name"])  # 輸出tony
4 print(tony_dic[(6,)])  # 輸出(7,)

2. 字典的增加:setdefault() 方法。

 1 # setdefault()鍵存在就不添加,不存在就添加預設的值。
 2 
 3 dic = {'name': 'zs', 'age': 10, 'height': 1.75}
 4 
 5 dic.setdefault('weight', 170)  # 鍵存在就不添加,不存在就添加預設的值。
 6 
 7 print(dic)
 8 
 9 dic.setdefault('weight', 180)
10 
11 print(dic)
12 
13 輸出結果:{'name': 'zs', 'age': 10, 'height': 1.75, 'weight': 170}
14 
15 {'name': 'zs', 'age': 10, 'height': 1.75, 'weight': 170}
16 
17 ---------------------------------------------------------------------------------------
18 dic = {'name': 'zs', 'age': 10, 'height': 1.75}
19 
20 dic['name'] = 'ww'  # 根據key鍵來設置值,如果key存在就直接覆蓋原有的值
21 
22 print(dic)
23 
24 輸出結果: {'name': 'ww', 'age': 10, 'height': 1.75}

3.字典的刪除:pop(),popitem(),clear(),del 方法。

 1 pop()
 2  
 3 dic = {'name': 'zs', 'age': 10, 'height': 1.75}
 4  
 5 dic.pop('name')   # 根據鍵刪除值
 6  
 7 print(dic)
 8  
 9 輸出結果: {'age': 10, 'height': 1.75}
10 ------------------------------------------------------------------------------------------
11 popitem()
12  
13 dic = {'name': 'zs', 'age': 10, 'height': 1.75}
14  
15 dic.popitem()   # 隨機刪除一個鍵值對
16  
17 print(dic)
18  
19  
20 輸出結果:{'name': 'zs', 'age': 10}
21  
22 -----------------------------------------------------------------------------------------
23 clear()
24  
25 dic = {'name': 'zs', 'age': 10, 'height': 1.75}
26  
27 dic.clear()   #  清空字典里所有的鍵值對
28  
29 print(dic)
30  
31  
32 輸出內容:{}  # 字典還是存在的,只是沒有數據,所有輸出空字典。
33 =======================================
34  
35 del dic  # 字典刪除
36  
37 print(dic) # 字典刪除了,所有輸出會報錯,找不到字典
38  
39 輸出結果:NameError: name 'dic' is not defined  (報錯)

 4.字典的修改:使用鍵修改或者update()方法。

 1 # 使用key修改:
 2     
 3  dic = {'name':'zs','age':10,'height':1.78}
 4  
 5  dic['name'] = '張三'
 6  
 7  print(dic)
 8  
 9  
10 輸出結果: {'name':'張三','age':10,'height':1.78}
11  
12 ---------------------------------------------------------------------------------------
13  
14 update()    按照字典的格式更新鍵的內容,若果字典不存在這個鍵,就創建這個鍵和值
15  
16 dic = {'name': 'zs', 'age': 10, 'height': 1.78}
17  
18 dic1 = {'name':'張三','weight':152}
19  
20 dic.update(dic1)
21  
22 print(dic)
23  
24  
25 輸出結果:{'name': '張三', 'age': 10, 'height': 1.78, 'weight': 152}

5.字典的查找:get(),keys(),values(),items(),len()方法。

 1 c = {'name': 'zs', 'age': 10, 'height': 1.78}
 2  
 3 print(dic.get('name'))     # get()根據鍵來獲取相應的值,如果鍵不存在,預設返回None
 4  
 5 print(dic.keys())          # 返回一個包含字典所有key的列表
 6  
 7 print(dic.values())        # 返回一個包含字典所有value的列表
 8  
 9 print(dic.items())         # 返回字典鍵值,返回呈元組的形式
10  
11 print(len(dic))            # 測量字典鍵值對的個數,註意是鍵值對。
12  
13  
	   

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

-Advertisement-
Play Games
更多相關文章
  • 在js和jquery使用中,經常使用到頁面載入完成後執行某一方法。通過整理,大概是五種方式(其中有的只是書寫方式不一樣)。 1:使用jQuery的$(function){}; 2:使用jquery的$(document).ready(function(){}); 前兩者本質上沒有區別,第1種是第2種 ...
  • 場景 Docker Compose部署GitLab服務,搭建自己的代碼托管平臺(圖文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/101039801 從零開始一步一步搭建Ubuntu Server伺服器、修改數據源、安裝 ...
  • 場景 Docker Compose部署GitLab服務,搭建自己的代碼托管平臺(圖文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/101039801 從零開始一步一步搭建Ubuntu Server伺服器、修改數據源、安裝 ...
  • 場景 Docker Compose部署GitLab服務,搭建自己的代碼托管平臺(圖文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/101039801 從零開始一步一步搭建Ubuntu Server伺服器、修改數據源、安裝 ...
  • Redis主從複製機制 1、讀寫分離的好處 + 性能優化:主伺服器專註於寫操作,可以更適合寫入數據的模式工作;同樣,從伺服器專註於讀操作,可以用更適合讀取數據的模式工作。 + 強化數據安全,避免單點故障:由於同步機制的存在,各個伺服器之間的數據保持一致,所以其中某個伺服器宕機不會導致數據丟失或無法訪 ...
  • UML是一種統一建模語言,他是以面向對象的方式來實現對任何的系統進行描述的一種語言, 它包括9種圖形+包圖,分為靜態和動態兩種,也就是結構圖和行為圖 “靜態”圖有:用例圖、類圖、對象圖、部署圖、構件圖 “動態”圖有:序列圖、活動圖、狀態圖和協作圖。 1、用例圖: 用例圖是一種從用戶角度來描述系統功能 ...
  • 微服務之間的調用有兩種方式,RPC和事件驅動。事件驅動是更好的方式,因為它是松耦合的。但如果業務邏輯是緊耦合的,RPC方式也是可行的(它的好處是代碼更簡單),而且你還可以通過選取合適的協議(Protobuf+gRPC)來降低這種緊耦合帶來的危害。由於事件溯源和事件通知的相似性,很多人把兩者弄混了,但... ...
  • xxl job 系統說明 安裝 安裝部署參考文檔: "分散式任務調度平臺xxl job" 功能 定時調度、服務解耦、靈活控制跑批時間(停止、開啟、重新設定時間、手動觸發) XXL JOB是一個輕量級分散式任務調度平臺,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼並接入多家公司線 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...