python基礎(7):基本數據類型二(list、tuple)、range

来源:https://www.cnblogs.com/liuhui0308/archive/2019/11/05/11802562.html
-Advertisement-
Play Games

1. 列表 1.1 列表的介紹 列表是python的基礎數據類型之⼀,其他編程語⾔也有類似的數據類型。比如JS中的數組, java中的數組等等。它是以[ ]括起來,每個元素⽤','隔開⽽且可以存放各種數據類型: lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("我","叫" ...


1. 列表

1.1 列表的介紹

列表是python的基礎數據類型之⼀,其他編程語⾔也有類似的數據類型。比如JS中的數組, java中的數組等等。它是以[ ]括起來,每個元素⽤','隔開⽽且可以存放各種數據類型:

lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("","", "", ""), "abc", {"":"dict字典"},{"我叫集合","集合"}]

列表相比於字元串,不僅可以存放不同的數據類型,⽽且可以存放⼤量的數據。32位python可以存放: 536870912個元素, 64位可以存放: 1152921504606846975個元素,⽽且列表是有序的(按照你保存的順序),有索引,可以切⽚⽅便取值。

1.2 列表的索引和切片

列表和字元串⼀樣也擁有索引:

lst = ["麻花藤", "王劍林", "⻢芸", "周鴻醫", "向華強"]
print(lst[0]) # 獲取第⼀個元素
print(lst[1])
print(lst[2])
lst[3] = "流動強" # 註意. 列表是可以發⽣改變的. 這⾥和字元串不⼀樣
print(lst) # ['麻花藤', '王劍林', '⻢芸', '流動強', '向華強']
s0 = "向華強"
s0[1] = "" # TypeError: 'str' object does not support item assignment 不允許改變
print(s0)

列表的切片:

lst = ["麻花藤", "王劍林", "⻢芸", "周鴻醫", "向華強"]
print(lst[0:3]) # ['麻花藤', '王劍林', '⻢芸']
print(lst[:3]) # ['麻花藤', '王劍林', '⻢芸']
print(lst[1::2]) # ['王劍林', '周鴻醫'] 也有步⻓
print(lst[2::-1]) # ['⻢芸', '王劍林', '麻花藤'] 也可以倒著取
print(lst[-1:-3:-2]) # 倒著帶步⻓

1.3 列表的增刪改查

1.3.1 添加

註意,list和str是不⼀樣的。list可以發⽣改變,所以直接就在原來的對象上進⾏了操作

lst = ["麻花藤", "林俊傑", "周潤發", "周芷若"]
print(lst)
lst.append("wusir")
print(lst)

lst
= [] while True:   content = input("請輸⼊你要錄⼊的員⼯信息, 輸⼊Q退出:")   if content.upper() == 'Q':      break    lst.append(content) print(lst)
lst
= ["麻花藤", "張德忠", "孔德福"] lst.insert(1, "劉德華") # 在1的位置插⼊劉德華. 原來的元素向後移動⼀位 print(lst)

# 迭代添加 lst = ["王志⽂", "張⼀⼭", "苦海⽆涯"] lst.extend(["麻花藤", "麻花不疼"]) print(lst)

1.3.2 刪除

pop, remove, clear, del

lst = ["麻花藤", "王劍林", "李嘉誠", "王富貴"]
print(lst)
deleted = lst.pop() # 刪除最後⼀個
print("被刪除的", deleted)
print(lst)

el
= lst.pop(2) # 刪除2號元素 print(el) print(lst)
lst.remove(
"麻花藤") # 刪除指定元素 print(lst) # lst.remove("哈哈") # 刪除不存在的元素會報錯 # # print(lst)
lst.clear() # 清空list print(lst)

# 切⽚刪除 del lst[1:3] print(lst)

1.3.3 修改

索引切片修改

# 修改
lst = ["太⽩", "太⿊", "五⾊", "銀王", "⽇天"]
lst[1] = "太污" # 把1號元素修改成太污
print(lst)

lst[
1:4:3] = ["麻花藤", "哇靠"] # 切⽚修改也OK. 如果步⻓不是1, 要註意. 元素的個 print(lst)
lst[
1:4] = ["李嘉誠個⻳⼉⼦"] # 如果切⽚沒有步⻓或者步⻓是1. 則不⽤關⼼個數 print(lst)

1.3.4 查詢

列表是一個可迭代對象,所以可以進行for迴圈

for el in lst:
   print(el)

1.3.5 其他操作

lst = ["太⽩", "太⿊", "五⾊", "銀王", "⽇天", "太⽩"]
c = lst.count("太⽩") # 查詢太⽩出現的次數
print(c)

lst
= [1, 11, 22, 2] lst.sort() # 排序. 預設升序 print(lst) lst.sort(reverse=True) # 降序 print(lst)
lst
= ["太⽩", "太⿊", "五⾊", "銀王", "⽇天", "太⽩"] print(lst) lst.reverse() print(lst)
l
= len(lst) # 列表的⻓度 print(l)

1.4 列表的嵌套

採⽤降維操作,⼀層⼀層的看就好。

lst = [1, "太⽩", "wusir", ["⻢⻁疼", ["可⼝可樂"], "王劍林"]]

# 找到wusir print(lst[2])
# 找到太⽩和wusir print(lst[1:3])
# 找到太⽩的⽩字 print(lst[1][1])
# 將wusir拿到. 然後⾸字⺟⼤寫. 再扔回去 s = lst[2] s = s.capitalize() lst[2] = s print(lst) # 簡寫 lst[2] = lst[2].capitalize() print(lst)
# 把太⽩換成太⿊ lst[1] = lst[1].replace("", "") print(lst)
# 把⻢⻁疼換成⻢化疼 lst[3][0] = lst[3][0].replace("", "") print(lst[3][0])
lst[
3][1].append("雪碧") print(lst)

2. 元組

元組: 俗稱不可變的列表,⼜被成為只讀列表。元組也是python的基本數據類型之⼀,⽤⼩括弧括起來,⾥⾯可以放任何數據類型的數據,查詢可以,迴圈也可以,切片也可以,但就是不能改。

tu = (1, "太⽩", "李⽩", "太⿊", "怎麼⿊")
print(tu)


print(tu[0]) print(tu[2]) print(tu[2:5]) # 切⽚之後還是元組
#
for迴圈遍歷元組 for el in tu:    print(el)

# 嘗試修改元組 # tu[1] = "⻢⻁疼" # 報錯 'tuple' object does not support item assignment
tu = (1, "哈哈", [], "呵呵") # tu[2] = ["fdsaf"] # 這麼改不⾏
tu[2].append("麻花藤") # 可以改了. 沒報錯 tu[2].append("王劍林") print(tu)

關於不可變,註意: 這⾥元組的不可變的意思是⼦元素不可變,⽽⼦元素內部的⼦元素是可 以變,這取決於⼦元素是否是可變對象。元組中如果只有⼀個元素,⼀定要添加⼀個逗號,否則就不是元組。

tu = (1,)
print(type(tu))

元組也有count(), index(), len()等⽅法. 可以⾃⼰測試使⽤。

3. range

range可以幫我們獲取到⼀組數據,通過for迴圈能夠獲取到這些數據。

for num in range(10):
   print(num)
for num in range(1, 10, 2):
   print(num)
for num in range(10, 1, -2): # 反著來, 和切⽚⼀樣
   print(num)

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

-Advertisement-
Play Games
更多相關文章
  • 01、前言 先讓我吐一句肺腑之言吧,不說出來會憋出內傷的。《Java 併發編程實戰》這本書太特麽枯燥了,儘管它被奉為併發編程當中的經典之作,但我還是忍不住。因為第四章“對象的組合”我整整啃了兩周的時間,才啃出來點肉絲。 讀者朋友們見諒啊。要怪只能怪我自己的學習能力有限,真讀不了這種生硬無趣的技術書。 ...
  • 本文是在學習軟體工程與J2EE課程時的學習筆記,旨在從大體的概念上瞭解Java EE的一些主要組件在Web應用中的作用。 上圖精煉的描述了MVC模型以及Java EE的部分組件如何分佈在一個Web應用上,下文所提到的圖示均指該圖。 Web應用 在開始一切之前要瞭解什麼是Web應用,對於圖中最左側的用 ...
  • FFTW是一個可以進行可變長度一維或多維DFT的開源C程式庫,是目前最快的FFT演算法實現。 本文簡述了在Windows平臺上,如何在C++中調用FFTW,所使用的IDE為Visual Studio 2017。 FFTW的詳細信息可在 http://www.fftw.org 中查看 獲取FFTW 在 ...
  • 一、正則的寫法: . (點好) :表示任意一個字元,除了\n,比如查找所有的一個字元\. [] :匹配中括弧中列舉的任意字元,比如[L,Y,0], LLY, Y0, LIU \d :任意一個數字 \D :除了數字都可以 \s :表示空格,tab鍵 \S :除了空白符號 \w :單詞字元,就是a-z, ...
  • 升級 https 記錄 1、去阿裡雲購買證書(免費版),並提交審核資料 購買的證書 2、下載證書 下載證書 3、查看上圖頁面的第三步 JKS證書安裝 4、在證書目錄下執行阿裡雲提供的命令,密碼都填 pfx password.txt 中的內容(三次),會生成 your name.jks 文件。 生成 ...
  • ▶ Log4j2 性能 "https://logging.apache.org/log4j/2.x/performance.html" ▶ Spring Boot 依賴與配置 Maven 依賴 XML 配置 resources/log4j2.xml 混合 sync/async 彩色日誌 分類輸出到不 ...
  • 之前同事問了一道需要點腦洞的演算法題,我覺得蠻有意思的,思路可能會給大家帶來一些啟發,特意在此記錄一下 題目 現有一個元素僅為 0,1 的 n 階矩陣,求連續相鄰(水平或垂直,不能有環)元素值為 1 的序列和的最大值 假設有如下矩陣 則此矩陣連續相鄰元素為 1 的序列和分別為 4, 3,(如圖示),可 ...
  • 2019-11-05-23:03:28 List集合: java.util.List 介面繼承自 Collection 介面,是單列集合的一個重要分支,習慣性地會將實現了List 介面的對象稱為List集合 特點: 1. 它是一個元素存取有序的集合。例如,存元素的順序是11、22、33。那麼集合中, ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...