網站首頁 編程語言 正文
1、列表的創建與遍歷
與整數和字符串不同,列表要處理一組數據。因此,列表必須通過顯式的數據賦值才能生成,簡單將一個列表賦值給另一個列表不會生成新的列表對象,只會對原有列表生成一個新的引用。
#創建列表
list =[1,2,3,4,5]
list2=list
print(list==list2)# True 就算新建一個列表,然后將原有的值賦值給新的列表。新的列表和原列表還是指向的同一個地址
list[0]=0
print(list,list2) #修改list列表的同時也修改了list2,因為list和list2都是指向的同一個地址
print("====================================")
length=len(list)#獲取列表長度
#遍歷
i=0
#為了方便后續操作的觀察,這里采用不換行輸出
while(i<length):
if (i < length-1):
print(list[i], end=',')
else:
print(list[i],end='')
print()
i+=1
print("====================================")
for x in list:
if (x <length):
print(x, end=',')
else:
print(x,end='')
print()
# print(x)
print("====================================")
2、添加元素
列表可以使用append()、extend()或insert()方法來添加元素
2.1、append()方法
在列表末尾添加新的元素
語法格式:list.append(obj)
其中,list表示列表,obj表示添加到列表末尾的對象
#在列表末尾添加元素
list.append(6)
print(list) ##[0, 2, 3, 4, 5, 6]
2.2、extend()方法
在列表末尾一次性添加另一個序列中的多個值(用新列表擴展原來的列表)
語法格式:list.extend(seq)
其中,list表示列表,seq表示添加到列表末尾的序列
#在列表末尾一次性添加另一個序列中的多個值
list3=[7,8]
list.extend(list3)
print(list) #[0, 2, 3, 4, 5, 6, 7, 8]
2.3、insert()方法
將指定對象插入到列表的指定位置
語法格式:list.insert(index,obj)
其中,list表示列表,index表示插入的索引位置,obj表示插入列表中的對象?
#將元素添加到指定位置,例:在索引位置為1的地方插入1
list.insert(1,1)
print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8]
3、刪除元素
在列表中,刪除元素的常用方法有:del命令、pop()方法和remove()方法
3.1、del命令
根據索引刪除列表中的元素
#根據索引刪除元素,例:刪除索引位置為0的元素
del list[0]
print(list) #[1, 2, 3, 4, 5, 6, 7, 8]
#使用分片的方式輸出列表中的元素
del list[5:7] #包前不包后,5:7即刪除索引為5、6的元素
print(list) #[1, 2, 3, 4, 5, 8]
3.2、pop()方法
根據索引刪除列表中的元素,并返回該元素的值
語法格式:list.pop([index])
其中,list表示列表。index表示刪除列表元素的索引值,為可選參數,缺省時為-1,刪除列表中的最后一個元素。
#根據索引刪除列表中的元素,并返回該元素的值
print(list.pop(5)) #8
print(list) #[1, 2, 3, 4, 5]
#如果沒給索引,則默認刪除列表最后一個元素。即彈棧/出棧
# print(list.pop())
# print(list)
3.3、remove()方法
remove()方法只能刪除列表中某個值的第一個匹配項,如果要刪除所有匹配的元素就需要搭配循環語句實現。
語法格式:list.remove(obj)
#刪除某個值的第一個匹配值
list.remove(3)
print(list) #[1, 2, 4, 5]
4、分片賦值
分片賦值就是以分片的形式給列表賦值,可以一次為多個元素賦值
#替換索引從1包括1開始到最后的元素
list[1:]=[3,6,9]
print(list) #[1, 3, 6, 9]
分片賦值還可以在不替換任何原有元素的情況下插入新的元素
#在索引為2的位置插入列表[4,5]
#[2:1]如果后面的1變成2或者更大的數,則會依次覆蓋/刪除插入位置后面的數
list[2:1]=[4,5]
print(list) #[1, 3, 4, 5, 6, 9]
分片賦值也可以刪除元素
#刪除元素
num=[1,2,3,4,5,6]
print(num) #[1, 2, 3, 4, 5, 6]
num[1:5]=[] #用空列表替換列表中索引1到索引5(不含)的元素
print(num) #[1, 6]
5、列表排序
將列表中的元素排序的方法有3種,分別是reverse()方法、sort()方法和sorted()函數
5.1、reverse()方法
將列表中的元素反向存放
語法格式:list.reverse()
#將列表元素反轉
list.reverse()
print(list) #[9, 6, 5, 4, 3, 1]
5.2、sort()方法
將列表中的元素進行排序(默認為升序)
語法格式:list.sort([key=None])[,reverse=False])
其中,list表示列表,key為可選參數,如果指定了該參數,會使用該參數的方法進行排序。reverse為可選參數,表示是否降序排序,缺省時為False
#將列表排序(默認為升序)
list.sort()
print(list) #[1, 3, 4, 5, 6, 9]
#改為降序排序
list.sort(reverse=True)
print(list) #[9, 6, 5, 4, 3, 1]
#按元素長度進行排序(默認升序)
list4=["hello","P","yt","hon"]
list4.sort(key=len)
print(list4) #['P', 'yt', 'hon', 'hello']
#降序
list4.sort(key=len,reverse=True)
print(list4) #['hello', 'hon', 'yt', 'P']
5.3、sorted()函數
與sort()方法不同,內置函數sorted()返回新列表,并不對原列表進行任何修改
語法格式:sorted(iterable[,key=None][,reverse=False])
其中,iterable表示可迭代對象,如列表。參數key和reverse的用法與sort()方法中的相同
#內置函數sorted()返回新列表,不對原列表進行修改
list5=[5,3,4,2,1]
list5_new=sorted(list5)
print(list5==list5_new) # False 列表地址不一致
print(list5) #原列表不變 [5, 3, 4, 2, 1]
print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5]
#降序
list6=sorted(list5,reverse=True)
print(list6==list5) #False
print(list6) #[5, 4, 3, 2, 1]
完整代碼
list =[1,2,3,4,5]
list2=list
print(list==list2)# True 就算新建一個列表,然后將原有的值賦值給新的列表。新的列表和原列表還是指向的同一個地址
list[0]=0
print(list,list2) #修改list列表的同時也修改了list2,因為list和list2都是指向的同一個地址
print("====================================")
length=len(list)#獲取列表長度
#遍歷
i=0
#為了方便后續操作的觀察,這里采用不換行輸出
while(i<length):
if (i < length-1):
print(list[i], end=',')
else:
print(list[i],end='')
print()
i+=1
print("====================================")
for x in list:
if (x <length):
print(x, end=',')
else:
print(x,end='')
print()
# print(x)
print("====================================")
# 添加元素
print("添加元素:")
#在列表末尾添加元素
list.append(6)
print(list) ##[0, 2, 3, 4, 5, 6]
#在列表末尾一次性添加另一個序列中的多個值
list3=[7,8]
list.extend(list3)
print(list) #[0, 2, 3, 4, 5, 6, 7, 8]
#將元素添加到指定位置,例:在索引位置為1的地方插入1
list.insert(1,1)
print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8]
print("====================================")
#刪除元素
print("刪除元素:")
#根據索引刪除元素,例:刪除索引位置為0的元素
del list[0]
print(list) #[1, 2, 3, 4, 5, 6, 7, 8]
#使用分片的方式輸出列表中的元素
del list[5:7] #包前不包后,5:7即刪除索引為5、6的元素
print(list) #[1, 2, 3, 4, 5, 8]
#根據索引刪除列表中的元素,并返回該元素的值
print(list.pop(5)) #8
print(list) #[1, 2, 3, 4, 5]
#如果沒給索引,則默認刪除列表最后一個元素。即彈棧/出棧
# print(list.pop())
# print(list)
#刪除某個值的第一個匹配值
list.remove(3)
print(list) #[1, 2, 4, 5]
print("====================================")
#分片賦值
print("分片賦值:")
#替換索引從1包括1開始到最后的元素
list[1:]=[3,6,9]
print(list) #[1, 3, 6, 9]
#在索引為2的位置插入列表[4,5]
#[2:1]如果后面的1變成2或者更大的數,則會依次覆蓋/刪除插入位置后面的數
list[2:1]=[4,5]
print(list) #[1, 3, 4, 5, 6, 9]
#刪除元素
num=[1,2,3,4,5,6]
print(num) #[1, 2, 3, 4, 5, 6]
num[1:5]=[] #用空列表替換列表中索引1到索引5(不含)的元素
print(num) #[1, 6]
print("====================================")
#列表排序
print("排序:")
#將列表元素反轉
list.reverse()
print(list) #[9, 6, 5, 4, 3, 1]
#將列表排序(默認為升序)
list.sort()
print(list) #[1, 3, 4, 5, 6, 9]
#改為降序排序
list.sort(reverse=True)
print(list) #[9, 6, 5, 4, 3, 1]
#按元素長度進行排序(默認升序)
list4=["hello","P","yt","hon"]
list4.sort(key=len)
print(list4) #['P', 'yt', 'hon', 'hello']
#降序
list4.sort(key=len,reverse=True)
print(list4) #['hello', 'hon', 'yt', 'P']
print("---------------------------------------")
#內置函數sorted()返回新列表,不對原列表進行修改
list5=[5,3,4,2,1]
list5_new=sorted(list5)
print(list5==list5_new) # False 列表地址不一致
print(list5) #原列表不變 [5, 3, 4, 2, 1]
print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5]
#降序
list6=sorted(list5,reverse=True)
print(list6==list5) #False
print(list6) #[5, 4, 3, 2, 1]
原文鏈接:https://blog.csdn.net/qq_62731133/article/details/127260345
相關推薦
- 2022-11-23 GoLang?unsafe包詳細講解_Golang
- 2022-08-19 查看Linux的核數和內存等相關系統配置
- 2022-04-11 C++中為什么要使用動態內存_C 語言
- 2022-05-25 Flutter?StaggeredGridView實現瀑布流效果_Android
- 2022-03-09 SQL數據庫語句大全_數據庫其它
- 2022-07-22 如何測試webservice接口
- 2022-12-21 Python中判斷input()輸入的數據的類型_python
- 2023-02-07 Android?Service完整實現流程分析_Android
- 最近更新
-
- 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同步修改后的遠程分支