網站首頁 編程語言 正文
一. 創建列表
列表(list)作為Python中基本的數據結構,是存儲數據的容器,相當于其它語言中所說的數組。
模擬出的結構如下:
創建列表有兩種方式:
1.1 第一種
使用“[ ]”進行創建,內部元素可以是任意數據類型:
list1=["Hello","world",True,0.01,12]
1.2 第二種
使用Python中內置函數list()
list2=list(["Hello","world",True,0.01,12])
列表的特點總結:?
列表元素是按照有序順序進行排序的每個索引對應一個數據列表數據可以重復存儲內部元素可以是任意數據類型根據內部元素多少動態分配內存空間
二. 查詢列表
2.1 獲取列表元素索引
使用index()函數獲取元素索引,若列表中有重復元素,只獲取第一個位置的索引,元素不存在會拋出錯誤。
list1 = ["Hello","Hello",True,0.01,12]
# 索引為 0
print(list1.index("Hello"))
# 索引為 4
print(list1.index(12))
# 索引不存在 ValueError: 100 is not in list
print(list1.index(100))
給index()函數設置參數,可以在指定的范圍內查找元素的索引位置
list1 = ["Hello", "Hello", True, 0.01, 12]
# 從索引1開始到索引4結束,不包括索引4,查找元素True的索引為2
print(list1.index(True, 1, 4))
2.2 獲取列表單個元素
對于一個列表,索引從前往后下標是從0~N-1,從后往前是-N~-1,N表示元素個數。
list1 = ["Hello", "Hello", True, 0.01, 12]
# 獲取索引為2的元素 True
print(list1[2])
# 獲取索引為-1的元素 12
print(list1[-1])
# IndexError: list index out of range
print(list1[5])
2.3 獲取列表多個元素
使用索引只能獲取一個元素,想要獲取列表中多個元素使用切片。
公式:列表名[start :?stop :step],意思是從哪里開始到哪里結束,可以定義步長(默認步長為1,step不能為0)。
對于切片的結果就是對原列表的拷貝生成一個新的列表對象。
切片的用法如下:
list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34]
# 取索引1~6,默認步長為1:['Hello', True, 0.01, 12, 32]
print(list1[1:6:])
# 取索引1~6,['Hello', True, 0.01, 12, 32]
print(list1[1:6:1])
# 取索引1~6,步長為2:['Hello', 0.01, 32]
print(list1[1:6:2])
# start不寫,默認從0開始:['Hello', True, 12]
print(list1[:6:2])
# ['Hello', True, 12]
print(list1[0:6:2])
# stop不寫,
print(list1[0::2])
# step為負數 -1 [34, 32, 12, 0.01, True, 'Hello', 'Hello']
print(list1[::-1])
# [34, 12, True, 'Hello']
print(list1[::-2])
# [32, 12, 0.01, True, 'Hello', 'Hello']
print(list1[5::-1])
# [32, 12, 0.01, True]
print(list1[5:1:-1])
注意:若step為負數則是從后往前開始截取切片。
2.3 判斷元素是否存在于列表
使用in或者not in,輸出的是布爾類型的值。?
list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34]
# True
print("Hello" in list1)
# False
print("Hello" not in list1)
# False
print(True not in list1)
# True
print(12 in list1)
遍歷列表元素:
list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34]
for i in list1:
print(i)
三. 列表添加操作
list1=[10,20,30,40,50,60]
# 在列表末尾添加一個元素
list1.append(34)
# [10, 20, 30, 40, 50, 60, 34]
print(list1)
# 在列表末尾添加多個元素
list1.extend([21,12,34])
# [10, 20, 30, 40, 50, 60, 34, 21, 12, 34]
print(list1)
# 在列表任意位置添加一個元素
list1.insert(0,1)
# [1, 10, 20, 30, 40, 50, 60, 34, 21, 12, 34]
print(list1)
# 在列表任意位置添加多個元素,會刪除切片的元素,然后添加新元素
list2=["hello",3,40]
list1[5:8:]=list2
# [1, 10, 20, 30, 40, 'hello', 3, 40, 21, 12, 34]
print(list1)
四. 列表刪除操作
list1 = [10, 20, 30, 40, 50, 60, 70]
list1.remove(20)
# [10, 30, 40, 50, 60, 70]
print(list1)
# 刪除索引為1的元素,不指定刪除最后一個元素
list1.pop(1)
# [10, 40, 50, 60, 70]
print(list1)
# 切片刪除
list1[1:3] = []
# [10, 60, 70]
print(list1)
五. 修改列表元素
為指定的索引修改元素值,也可以使用切片的方式修改。
list1 = [10, 20, 30, 40, 50, 60, 70]
list1[3]="Hello"
# [10, 20, 30, 'Hello', 50, 60, 70]
print(list1)
# 切片方式
list1[3:6]=[1,1,1,1]
# [10, 20, 30, 1, 1, 1, 1, 70]
print(list1)
六. 列表排序操作
有常見的兩種方式可以對列表中的元素進行排序,使用sort(),或者sorted()的方式進行排序。
兩者區別就是前者排序后不會生成新的列表對象,而后者會生成一個新的列表對象。
list1 = [10, 30, 20, 40, 80, 60]
# 原來list1: 1738929360704
print("原來list1:", id(list1))
# [10, 20, 30, 40, 60, 80] 默認升序
list1.sort()
print(list1)
# 后來list1: 1738929360704
print("后來list1:", id(list1))
# 指定reverse=True為降序
list1.sort(reverse=True)
# [80, 60, 40, 30, 20, 10]
print(list1)
###################################
list2 = [10, 30, 67, 100, 80, 32]
# 原來list2: 2357934175872
print("原來list2: ", id(list2))
list2 = sorted(list2)
# # [10, 30, 32, 67, 80, 100]
print(list2)
# 后來list2: 2357931224384
print("后來list2: ", id(list2))
# 降序
list2 = sorted(list2, reverse=True)
# [100, 80, 67, 32, 30, 10]
print(list2)
此外,還可以使用循環生成列表,稱為列表生成式。
主要結構:
[ i*i for i in range(a,b)?]
通過一個for循環生成列表,i*i指的是計算公式。
代碼操作:
# 生成1-9的列表式子,并通過i+i計算
list1 = [i + i for i in range(1, 10)]
# [2, 4, 6, 8, 10, 12, 14, 16, 18]
print(list1)
以上就是對于Python列表的簡單操作。?
原文鏈接:https://blog.csdn.net/qq_41857955/article/details/125700273
相關推薦
- 2022-09-03 Matplotlib中文亂碼的兩種詳細解決方案_python
- 2023-07-18 List集合循環刪除特殊元素之六種方法(實踐)
- 2023-04-06 分布式系統CAP定理中的P原理解析_相關技巧
- 2023-03-16 Python?import導入上級目錄文件的方法_python
- 2022-12-15 C++?Boost?Lockfree超詳細講解使用方法_C 語言
- 2022-11-25 C++關鍵字之likely和unlikely詳解_C 語言
- 2023-01-14 Android?ANR無響應分析解決方案_Android
- 2022-08-16 python上下文管理器協議的實現_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支