4.Python的不堪一擊到初學乍練(列表,元組)

Python(列表,元組)

一.列表

  1. 列表初識

    • 列表是python的基礎數據類型之一,其他編程語言也有類似的數據類型.
      比如JS中的數組, java中的數組等等,它是以[ ]括起來, 每個元素用","隔開并且可以存放各種數據類型.
    • 列表相比于字符串,不僅可以存放不同的數據類型,并且可以存放大量的數據.
      當32位Python可以存放:536870912個元素, 當64位Python可以存放:1152921504606846975個元素,并且列表是按照你保存的順序進行排序的,有索引并且可以切片,方便取值.
  2. 列表索引,切片和操作

    1.1 列表的索引

    ? 列表與字符串一樣也有索引:

    # 列表索引的應用
    lst = ["asd", "你好", "hell world", 123, "升仙"]
    print(lst[0]) # 獲取第一個元素
    print(lst[1]) # 獲取第二個元素
    print(lst[2]) # 獲取第三個元素
    print(lst[3]) # 獲取第四個元素
    print(lst[4]) # 獲取第五個元素
    # 列表是可變的與字符串不同這點要注意,在列表的操作中會有說明.

    1.2 列表的切片

    ? 列表與字符串一樣可進行切片操作

    lst = ["asd","你好","hell world",123,"升仙"]
    print(lst[0:3]) # ["asd","你好","hell world"]
    print(lst[:3]) # ["asd","你好","hell world"]
    print(lst[1::2]) # ["你好",123] 列表同樣有步長
    print(lst[2::-1]) # ["hell world","你好","asd"] 步長位置的正負控制著取值的方向
    print(lst[-1:-4:-2]) # ["升仙","hell world"]
    # 列表和字符串的操作基本類似,因此操作起來并不難舉一反三即可.

    1.3 列表的操作(增,刪,改,查,其他操作)

    注意 : list和str不一樣, lst可以發生改變.,所以可以直接在原來list對象上進行操作.

    ? 1.3.1 列表的增加

    # 在列表后新增
    lst = ["asd","你好","hell world",123,"升仙"]
    print(lst)
    lst.append("wusir")
    print(lst) # ["asd","你好","hell world",123,"升仙","wusir"]
    ---------------------------------
    # 根據索引位置插入
    lst = ["asd","你好","hell world",123,"升仙"]
    lst.insert(1,"成仙") # 在索引為1的位置插入劉德華,原來的元素向后移動一位.
    print(lst) # ["asd","成仙","你好","hell world",123,"升仙"]
    ---------------------------------
    # 迭代添加
    lst = ["asd","你好","hell world",123,"升仙"]
    lst2 = ["升仙成功","升仙失敗"]
    lst.extend(lst2)
    print(lst) # ["asd","你好","hell world",123,"升仙","升仙成功","升仙失敗"]
    print(lst2) # ["升仙成功","升仙失敗"]
    # lst2列表添加到lst列表中,lst2本身不變.

    ? 1.3.2 列表的刪除

    ? 列表的刪除有四種方式(pop,remove,clear,del)

    # pop刪除用法
    lst = ["asd","你好","hell world",123,"升仙"]
    print(lst)
    el = lst.pop() # 當pop()括號內為空時,默認刪除最后一個索引所對應的的數據.
    print(el) # 打印結果:升仙,pop刪除列表的某一項時,會有返回值,其返回值就是被pop刪除的內容.
    print(lst) # ["asd","你好","hell world",123]lst = ["asd","你好","hell world",123,"升仙"]
    el2 = lst.pop(2) # 刪除索引為2的位置的值
    print(el2) # hell world
    print(lst) # ["asd","你好",123,"升仙"]
    ---------------------------------
    # remove刪除用法
    lst = ["asd","你好","hell world",123,"升仙"]
    lst.remove("升仙") # 可以刪除指定元素,當刪除不存在的元素會報錯
    print(lst) # ["asd","你好","hell world",123]
    ---------------------------------
    # clear刪除用法
    lst.clear() # 清空list
    print(lst) # []
    ---------------------------------
    # 切片刪除
    del lst[1:3] # 強制刪除
    print(lst) # ["asd",123,"升仙"]

    ? 1.3.3 列表的修改

    # 列表的修改
    lst = ["asd","你好","hell world",123,"升仙"]
    lst[1] = "飛升" # 把1號元素修改成飛升
    print(lst) # ["asd","飛升","hell world",123,"升仙"]
    lst[:4:2] = ["返璞歸真", "融會貫通"] # 切片修改也可以,同時注意當步長不是1時,元素的個數要一一對應額否則會報錯
    print(lst) # ["返璞歸真","飛升","融會貫通",123,"升仙"]
    lst[1:4] = ["霸氣外露"] # 如果切片沒有步長或者步長是1時,則不用管替換的個數.
    print(lst) # ["返璞歸真","霸氣外露","升仙"]

    ? 1.3.4 列表的查詢

    ? 列表是一個可以迭代的對象

    # 用for查詢打印列表每一個元素
    lst = ["asd","你好","hell world",123,"升仙"]
    for el in lst:print(el)
    ---------------------------------
    # 查詢元素在列表中出現的次數
    lst = ["asd","你好","hell world",123,"升仙"]
    c = lst.count("升仙") # 查詢升仙出現的次數
    print(c) # 1
    ---------------------------------
    # 查詢列表的長度
    lst = ["asd","你好","hell world",123,"升仙"]
    l=len(lst) # 列表的長度,與字符串的使用方式相同
    print(l) # 5

    ? 1.3.4 列表的其他操作

    # 升序
    lst = [1,2,15,23,4,33]
    lst.sort() # 排序,默認為升序.
    print(lst) # [1,2,4,15,23,33]
    ---------------------------------
    # 降序
    lst.sort(reverse=True) # 降序
    print(lst) # [33,23,15,4,2,1]
    ---------------------------------
    # 翻轉(倒序)
    lst = ["asd","你好","hell world",123,"升仙"]
    lst.reverse() # 此方法只針對列表內的各個元素,倒序
    print(lst) # ["升仙",123,"hell world","你好","asd"]
  3. 列表嵌套

    一層一層看靈活運用即可,融會貫通.

    lst = ["武當","峨眉","少林",["崆峒",["極樂谷"],"華山"],"魔教"]
    # 找到峨眉
    print(lst[2])
    # 找到少林和魔教
    print(lst[2:])
    # 找到崆峒
    print(lst[3][0])
    # 將崆峒改成丐幫
    lst[3][0]="丐幫"
    print(lst) # ['武當','峨眉','少林',['丐幫',['極樂谷'],'華山'],'魔教']
    # 在lst列表后添加"丐幫"
    lst.append("丐幫")
    print(lst) # ['武當','峨眉','少林',['崆峒',['極樂谷'],'華山'],'魔教','丐幫']

二.元組

  1. 元組初識

    ? 元組俗稱不可變的列表,又稱為只讀列表,元組也是python的基本數據類型之一,用小括號括起來,里面可以放任何數據類型的數據,循環也可以,查詢可以,切片也可以,就是不能改.

    ? 注意: 這里元組的不可變的意思是當子元素是不可變對象時元素不可變,當子元素為可變對象時是可以變的, 這取決于子元素是否是為可變對象.

    ? 元組中如果只有一個元素,需要添加一個逗號,否則就不是一個元組,當tu=()時,print(type(tu)),打印結果顯示tu是元組.

  2. 元組嵌套

    ? 元組也有,len(),count(),index()等方法,可以自己嘗試直至融會貫通.

    # 元組取值和切片
    tup = ("asd","你好","hell world",123,"升仙")
    print(tup[0]) # asd
    print(tup[2]) # hell world
    print(tup[2:]) # ("hell world",123,"升仙") 切片后仍然是元組
    ---------------------------------
    # for循環
    tup = ("asd","你好","hell world",123,"升仙")
    for el in tup:print(el)
    ---------------------------------
    # 當元組內的子元素時可變類型時可以進行操作,將武當換成丐幫
    tup = ("asd","你好","hell world",123,["武當","峨眉","少林"])
    tup[-1][0]="丐幫"
    print(tup) # ("asd","你好","hell world",123,["丐幫","峨眉","少林"])
    # 這里元組的不可變的意思是子元素不可變,而字元素內部的子元素是可以變, 這取決于子元素是否是可變對象.

轉載于:https://www.cnblogs.com/chenshuo531702820/p/10986271.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277556.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277556.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277556.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【前端工程師手冊】說清楚JavaScript中的相等性判斷

有哪些判斷相等性的方法 JavaScript現在提供了三種方法來判斷相等性: ,三個等號即嚴格相等,兩個等號即寬松相等Object.is(),ES6中用來判斷相等的方法判斷相等性的細節 (嚴格相等) 被比較的兩個數不會進行類…

python多任務編程_python線程的多任務編程

多任務多任務介紹對于人來說,一邊聽歌,一邊跳舞就是多任務。對于電腦,簡單的說,同一時間執行多個程序處理數據叫做多任務多任務理解單核CPU單核cpu在處理多任務的時候是根據時間片輪轉的方式進行的,比如執行QQ1us&…

列舉python的5個數據類型_python公開課|新公布的5個python核心數據類型,這些細節你難道還不不知道嗎...

【摘要】在這個科學技術高速發展的時代,越來越多的人都開始選擇學習編程軟件,那么首先被大家選擇的編程軟件就是python,也用在各行各業之中,并被大家所熟知,所以也有越來越多的python學習者關注python就業方向問題&…

selenium3 + python - page_source頁面源碼

前言: 有時候通過元素的屬性的查找頁面上的某個元素,可能不太好找,這時候可以從源碼中爬出想要的信息。selenium的page_source方法可以獲取到頁面源碼。 本次以博客園為例,先爬取頁面源碼,通過re正則表達式爬取出url&a…

簡單分析Guava中RateLimiter中的令牌桶算法的實現

為什么80%的碼農都做不了架構師?>>> 令牌桶算法是網絡流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一種算法。典型情況下,令牌桶算法用來控制發送到網絡上的數據的數目&am…

gcc oracle mysql_Linux下C語言訪問Oracle數據庫Demo

前提條件1. Linux環境已經存在,安裝好了Oracle本demo 運行環境本地環境 RedHat LINUX AS 4 ,ORACLE 10G本地數據庫sid orcl,ip:127.0.0.1,用戶名:kingbi,密碼:kingbi,表dsd_test. 顯示表dsd_test 的所有記錄.步驟:(1) 創建表 …

煉數成金數據分析課程---16、機器學習中的分類算法(交叉內容,后面要重點看)...

煉數成金數據分析課程---16、機器學習中的分類算法(交叉內容,后面要重點看) 一、總結 一句話總結: 大綱實例快速學習法 主要講解常用分類算法(如Knn、決策樹、貝葉斯分類器等)的原理及python代碼實現 1、什么是分類? 分…

NFS配置詳解

1、NFS服務介紹1.1 什么是NFS?NFS是Network File System的縮寫。中文意思是網絡文件系統。它的主要功能是通過網絡(一般是局域網)讓不同的主機系統之間可以共享文件或者目錄。NFS客戶端(一般為應用服務器,例如web&…

idea用法

更新gradle的依賴后,刷新項目引入jar包的方法: view--Tool Buttons 在右側 Gradle 點刷新 轉載于:https://www.cnblogs.com/z360519549/p/10994897.html

linux備份mysql需要暫停服務嗎_【MySQL運維】線上MySQL數據庫停服遷移流程

一、數據備份與恢復階段,選在凌晨1點進行操作,暫停服務進行備份(允許停服2個小時)1、首先停止Nginx服務,并且修改數據庫用戶密碼,防止還有新的連接進來2、殺掉某個用戶所有進程for i in mysql -udba -pPASSWORD -ssse "show …

免費下載!5本阿里技術好書,帶你看更大的世界

共享、開源是互聯網技術發展的重要精神。在過去,25000多萬名阿里工程師,撰寫了一系列精品技術叢書,從算法、研發到職業人生隨筆,應有盡有。目前該系列叢書已全部開放下載,供技術人免費閱讀。 今天小編整理了其中的五本…

python3安裝mysqlclient_Python3 安裝mysqlclient錯誤處理(MAC版)

在使用django的時候需要安裝mysqlclient庫,很多時候會出現以下報錯:running installrunning bdist_eggrunning egg_infowriting mysqlclient.egg-info/PKG-INFOwriting dependency_links to mysqlclient.egg-info/dependency_links.txtwriting top-level names to mysqlclient.…

React綁定事件處理函數this的幾種方法

在以類繼承的方式定義的組件中,為了能方便地調用當前組件的其他成員方法或屬性(如:this.state),通常需要將事件處理函數運行時的 this 指向當前組件實例。 綁定事件處理函數this的幾種方法: 第一種方法&…

烏班圖系統16.04安裝

本例jiyu基于Ubuntu16.04 64位版本為例進行安裝,安裝的方式有多種,本文使用光盤進行安裝安裝前應準備好,將Ubuntu的鏡像文件刻成光盤,然后將光盤放入光驅,并設置服務器從光盤啟動,開機到如下界面:按Enter鍵到下一步,如…

python做游戲用什么軟件_用Python自制谷歌小游戲

谷歌流量器中有個很有名的彩蛋:當你網絡出現問題時,就會出現一個“小恐龍游戲”。(如果想要直接進行游戲,可以在地址欄輸入:chrome://dino)今天我們就來給大家演示下,用Python來自己做一個仿制的“小恐龍游戲”&#x…

使用maven構建項目候,jar包錯誤的解決辦法

1、刪除架包,重新下載,右鍵項目點擊"run as"中的“maven clean”,然后再maven中找到Update Project 2、可以在代碼中,把鼠標放到報錯的架包上 點擊劃紅線部分,進行安裝 轉載于:https://www.cnblogs.com/qingqian/p/1099…

MySQL——通過EXPLAIN分析SQL的執行計劃

在MySQL中,我們可以通過EXPLAIN命令獲取MySQL如何執行SELECT語句的信息,包括在SELECT語句執行過程中表如何連接和連接的順序。下面分別對EXPLAIN命令結果的每一列進行說明:select_type:表示SELECT的類型,常見的取值有:…

python將argv作為參數_在jupyter / ipython notebook中將命令行參數傳遞給argv

經過大量的環顧后,我發現了非常繁瑣的自定義庫,但是用幾行代碼解決了它,我認為這些代碼很漂亮.我使用nbconvert最終得到一個html報告作為輸出,包含筆記本中的所有圖形和降價,但是通過最小的python包裝器接受命令行參數:python文件test_args.py(正常執行命令行參數)&…

模擬輸入(ADC-A0)

ESP8266具有內置的10位ADC,只有一個ADC通道(A0引腳),即只有一個ADC輸入引腳可讀取來自外部器件的模擬電壓 ESP8266上的ADC通道和芯片供電電壓復用,也就是說我們可以將其設置為測量系統電壓或者外部電壓 測量外部電壓: analogRead(…

SQL Server 連接超時案例一則

原文:SQL Server 連接超時案例一則上周六,一工廠系統管理員反饋一數據庫連接不上,SSMS連接數據庫報“連接超時時間已到。在嘗試使用預登錄握手確認時超過了此超時時間.......”, 如下截圖所示: 另外遠程連接也連接不上,系統管理員…