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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...