網站首頁 編程語言 正文
列表和元組:
list是一種有序的集合,可以隨時添加和刪除其中的元素.
1,創建一個普通列表
List = ['Jack','Bob','Lucy','Rose']
- Append() 末尾追加元素
- conunt()列表中某個元素的數量
extend()可以在列表尾部追加包含多個值的另一個序列,而list的append()只能添加一個值.
可以說list的extend方法是有擴展列表的作用:
list1 = [1,2,3]
list2 = [7,8,9]
list1.extend(list2)
print(list1) # [1, 2, 3, 7, 8, 9]
index() 獲取列表中某個元素的索引值,list的索引值從0開始,同樣可以用索引找到元素 list[index],當索引超出了范圍時 ,Python會報一個IndexError錯誤,(索引錯誤)所以,要確保索引不要越界,有的同學說了 那元素多了,又不知道列表中有多少個元素,我想取最后一個怎么辦呢 第一種辦法,先獲取這個列表的長度,
例如:len(list2) 第二個辦法:list2[-1]
- insert()在某個索引位置添加某個元素
- pop()刪除元素 傳遞的是待刪除元素的
- indexremove()傳遞待刪除元素,如果多個元素一樣,默認刪除第一個
x = ['a', 'b', 'a', 'c', 'd']
x.remove('a')
print (x) # ['b', 'a', 'c', 'd']
- reverse() 是把原列表中的元素順序從左至右的重新存放,而不會對列表中的參數進行排序整理.
- 如果需要對列表中的參數進行整理,就需要用到列表的另一種排序方式
- sort正序排序sort() 許多python初學者,對sort()方法比較糊涂.有的時候會需要一個排序好的列表,而又想保存原有未排序列表,他們會這么操作:
a = [5,7,6,3,4,1,2]
b = a.sort()
print( b) # None
這個時候問題出現了,變量b得到的是一個空值.那么想要得到排序好的列表,又想保留原列表怎么辦呢?列表sorted()方法可以幫你實現.
sorted()即可以保留原列表,又能得到已經排序好的列表sorted()操作方法如下:
a = [5,7,6,3,4,1,2]
b = sorted(a)
print('sorted(a)',a) # [5, 7, 6, 3, 4, 1, 2]
print('b = sorted(a)',b) # [1, 2, 3, 4, 5, 6, 7]
Tuple 另一種有序列表叫元組: tuple和list非常類似,但是tuple一旦初始化就不能修改,例如:
tuple =[1,2,3,4]
tuple.append(5)
Traceback (most recent call last):
File "<pyshell#59>", line 1, in <module>
tuple.append(5)
AttributeError: 'tuple' object has no attribute 'append'
現在,這個tuple不能變了,它也沒有append(),insert()這樣的方法.其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1]
不可變的tuple有什么意義?
因為tuple不可變,所以代碼更安全.如果可能,能用tuple代替list就盡量用tuple.
tuple的陷阱:當你定義一個tuple時,在定義的時候,tuple的元素就必須被確定下來,比如:
如果要定義一個空的tuple,可以寫成():但是,要定義一個只有1個元素的tuple,如果你這么定義:定義的不是tuple,是1這個數!這是因為括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,Python規定,這種情況下,按小括號進行計算,計算結果自然是1.
所以,只有1個元素的tuple定義時必須加一個逗號,來消除歧義:
Python在顯示只有1個元素的tuple時,也會加一個逗號,以免你誤解成數學計算意義上的括號.'可變的’tuple:
>>> tuple = (1,2,3,[4,5,6])
>>> tuple
(1, 2, 3, [4, 5, 6])
>>> tuple[3][0]=1
>>> tuple
(1, 2, 3, [1, 5, 6])
>>> tuple[3][1]=2
>>> tuple[3][2]=3
>>> tuple
(1, 2, 3, [1, 2, 3])
表面上看,tuple的元素確實變了,但其實變的不是tuple的元素,而是list的元素.tuple一開始指向的list并沒有改成別的list,所以,tuple所謂的"不變"是說,tuple的每個元素,指向永遠不變.即指向’a’,就不能改成指向’b’,指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!
理解了"指向不變"后,要創建一個內容也不變的tuple怎么做?那就必須保證tuple的每一個元素本身也不能變.
原文鏈接:https://blog.csdn.net/qdPython/article/details/126469268
相關推薦
- 2022-12-10 C++實現保存數據至EXCEL_C 語言
- 2022-05-03 C#設計模式之工廠模式_C#教程
- 2022-08-06 GIN的路由以及傳參問題_Golang
- 2022-07-07 詳解Git?的?rebase?命令使用方法_相關技巧
- 2022-04-28 SpringBoot?整合mongoDB并自定義連接池的示例代碼_MongoDB
- 2022-10-14 nginx gzip 壓縮配置
- 2022-04-06 關于Redis數據庫三種持久化方案介紹_Redis
- 2022-04-04 使用ivew開發樣式偶爾失效,布局錯亂
- 最近更新
-
- 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同步修改后的遠程分支