CC-Python-數據類型之list,tuple

来源:https://www.cnblogs.com/python-CC/archive/2019/04/06/10659756.html
-Advertisement-
Play Games

1,list,列表 列表使用中括弧[]表示,內可盛放各種數據類型如 1(整形),'abc'(字元串)等等 Ⅰ.列表的增 1、append() append是在列表最後面添加元素 2、insert() 在指定索引處插入新元素 insert(索引,新元素) 如果索引超出列表上界或下屆,則在開頭或結尾添加 ...


1,list,列表

列表使用中括弧[]表示,內可盛放各種數據類型如  1(整形),'abc'(字元串)等等

Ⅰ.列表的增

1、append()

append是在列表最後面添加元素

lis = ['a', 'b', 'c', 'd', 'e']
lis.append('f')
print(lis)

['a', 'b', 'c', 'd', 'e', 'f']

2、insert()

在指定索引處插入新元素

insert(索引,新元素)

lis = ['a', 'b', 'c', 'd', 'e']
lis.insert(0,'A')
print(lis)

['A', 'a', 'b', 'c', 'd', 'e']

如果索引超出列表上界或下屆,則在開頭或結尾添加

lis = ['a', 'b', 'c', 'd', 'e']
lis.insert(8,'A')
print(lis)

['a', 'b', 'c', 'd', 'e', 'A']

3、extend()

將可迭代對象添加進列表裡

extend(可迭代對象)

s1 = 'fgh'
lis = ['a', 'b', 'c', 'd', 'e']
lis.extend(s1)
print(lis)

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

 

列表之間可以通過'+'連接,單個列表可以通過'*'複製

lis = ['a', 'b', 'c', 'd', 'e']
lis2 = ['f', 'g', 'h']
lis3 = lis + lis2
print(lis3)

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
s1 = ['a']
s2 = s1 * 5
print(s2)

['a', 'a', 'a', 'a', 'a']

Ⅱ.列表的刪

1、remove

remove按元素從左向右查找並刪除找到的第一個元素

lis = ['a', 'b', 'c', 'c', 'b', 'a']
lis.remove('c')
print(lis)

['a', 'b', 'c', 'b', 'a']

如果remove的元素不在列表裡,則會報錯

lis = ['a', 'b', 'c', 'c', 'b', 'a']
lis.remove('x')
print(lis)

ValueError: list.remove(x): x not in list

2、pop

pop是按照索引彈出某個元素,預設為最後一個元素,又返回值,就是彈出的那個元素

lis = ['a', 'b', 'c', 'c', 'b', 'a']
s = lis.pop()
print(s)
print(lis)

a
['a', 'b', 'c', 'c', 'b']
lis = ['a', 'b', 'c', 'c', 'b', 'a']
s = lis.pop(2)
print(s)
print(lis)

c
['a', 'b', 'c', 'b', 'a']

3、clear

清空列表

lis = ['a', 'b', 'c', 'c', 'b', 'a']
lis.clear()
print(lis)

[]

4、del

del的第一個用法是所有數據類型都有的,例如 del list1,就是在記憶體中刪除list1這個變數

lis = ['a', 'b', 'c', 'c', 'b', 'a']
del lis
print(lis)

NameError: name 'lis' is not defined

在操作列表時,del可以通過切片的方式來刪除列表中某些元素

lis = ['a', 'b', 'c', 'c', 'b', 'a']
del lis[0:3]
print(lis)

['c', 'b', 'a']

Ⅲ.列表的改

1、通過索引修改

lis = ['a', 'b', 'c', 'c', 'b', 'a']
lis[0] = 'A'
print(lis)

['A', 'b', 'c', 'c', 'b', 'a']

2、迭代修改一個索引範圍的元素

lis = ['a', 'b', 'c', 'c', 'b', 'a']
lis[0:3] = 'ABCDE'
print(lis)

['A', 'B', 'C', 'D', 'E', 'c', 'b', 'a']

Ⅳ.列表的查

1、通過索引查找一個元素

lis = ['a', 'b', 'c', 'c', 'b', 'a']
print(lis[2])

c

2、通過元素找索引  index

index(value,[start,[stop]])  可切片尋找

lis = ['a', 'b', 'c', 'c', 'b', 'a']
print(lis.index('a'))
print(lis.index('a',1)

0
5

找不到會報錯

lis = ['a', 'b', 'c', 'c', 'b', 'a']
print(lis.index('d'))

ValueError: 'd' is not in list

Ⅴ.列表的其他操作

1、reverse

對列表進行反轉,沒有返回值

lis = ['a', 'b', 'c']
lis.reverse()
print(lis)

['c', 'b', 'a']

2、sort

sort(key=None,reverse=False)

對列表進行排序,就地修改,預設升序

reverse預設為False,當reverse為True時反轉變為降序

通過key進行自定義排序方式

lis = ['a', 'g', 'e', 'c' , 's', 'f', 'b']
lis.sort()
print(lis)

['a', 'b', 'c', 'e', 'f', 'g', 's']
lis = ['a', 'g', 'e', 'c' , 's', 'f', 'b']
lis.sort(reverse=True)
print(lis)

['s', 'g', 'f', 'e', 'c', 'b', 'a']

3、count

計數,統計某個元素在列表中出現的次數

lis = ['a', 'b', 'c', 'c', 'b', 'a']
print(lis.count('a'))

2

4、join

使用前提:列表中的元素全是字元串類型

用法:  str.join(list)

lis = ['a', 'b', 'c', 'c', 'b', 'a']
print('_'.join(lis))

a_b_c_c_b_a

2,tuple,元組

由於元組不可修改,所以只有查一個用法

用法與列表的查一致

 

但值得註意的是,如果元素里嵌套一個可更改的類型如列表,雖然元組不可變,但是裡面嵌套的列表是可以改變的

tu = ('a', 's', ['a','b','c'], 'f')
tu[2].append('d')
print(tu)

('a', 's', ['a', 'b', 'c', 'd'], 'f')

原因是:元組不可改指的是元組元素的記憶體地址不可以改變,例如,假如上述元組元素'a'在記憶體中的地址是123456,而元素列表的記憶體地址是654321,修改列表是修改了記憶體地址654321內的數據,而不是修改了這個元素指向的地址,但是要修改一個元素如令tu[0] = 'c',是將元組的第一個元素地址指向了新的地址(字元串'c'在記憶體中的地址假設111111),改變了原有指向123456,是錯誤的

 


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

-Advertisement-
Play Games
更多相關文章
  • MATLAB除了生孩子,其他全都能做系列。 使用MATLAB進行播放《追光者》,純文本內容哦。 載入的y是哪裡來的呢?當然是調用函數生成的咯。 y中的內容就不展示了,全是數據。 鏈接:!!!!! 鏈接:https://pan.baidu.com/s/1NPh4SaAJZ3ZMiN2M98vL6g 提 ...
  • WebSocket項目筆記 1. What is WebSocket? (以下內容來源於百度百科) WebSocket是一種在單個TCP連接上進行全雙工通信的協議 WebSocket使得客戶端和伺服器之間的數據交換變得更加簡單,允許服務端主動向客戶端推送數據。 在WebSocket API中,瀏覽器 ...
  • 一、TCP簡介 TCP介紹 TCP協議,傳輸控制協議(英語:Transmission Control Protocol,縮寫為 TCP)是一種面向連接的、可靠的、基於位元組流的傳輸層通信協議,由IETF的RFC 793定義。 TCP通信需要經過創建連接、數據傳送、終止連接三個步驟。 TCP通信模型中, ...
  • C++中的引用類似於現實生活中人們之間起昵稱,昵稱和本名都可以辨別人。 1.普通變數的引用: 其中不能光有昵稱沒有本名,如果只定義了引用,卻沒有將這個引用指向哪個變數,編譯器會報錯。 2.結構體的引用: 3.指針類型的引用: 一般形式為——類型 *&指針引用名 = 指針; 4.引用作為函數參數: 兩 ...
  • 這個系列主要參考Wes McKinney的Python for Data Analysis,也是對自己在平時學習工作中遇到的一些問題還有小技巧的總結。 ...
  • ``` // // main.cpp // 類模版與函數模版 // 在類聲明中使用類型參數來聲明通用的類 // Created by mac on 2019/4/6. // Copyright © 2019年 mac. All rights reserved. // 一個類模版中是否支持多種類型的參 ...
  • 一、本文內容簡介 二、具體內容 1. 中文分詞的基本概念 2.關於NLPIR(北理工張華平版中文分詞系統)的基本情況 3.具體SDK模塊(C++)的組裝方式 ①準備內容: ②開始組裝 三.註意事項 1. 中文分詞的基本概念 2.關於NLPIR(北理工張華平版中文分詞系統)的基本情況 3.具體SDK模 ...
  • 類是一個函數包,類中可以放置函數和變數。就像用 def 語句定義函數一樣,用 class 語句來自定義一個類 1. 使用語法 在類中被定義的函數被稱為類的【方法】,描述的是這個類能做什麼。我們使用 Class.function() 的格式 在類中被定義的變數被稱為類的【屬性】,使用的 Class.v ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...