列表(list)與元組(tuple) 列表的格式 [數據1,數據2,數據3,數據4,......] 列表可以存儲多個數據,數據之間的逗號以英文分割而且可以數據是不同類型的數據,列表是可變數據類型。 空列表 list_data = [] 或者 list_data = list() 列表的創建 # 使用 ...
列表(list)與元組(tuple)
列表的格式
>- [數據1,數據2,數據3,數據4,......]
>- 列表可以存儲多個數據,數據之間的逗號以英文分割而且可以數據是不同類型的數據,列表是可變數據類型。
>- 空列表 list_data = [] 或者 list_data = list()
- 列表的創建
# 使用 [ ] 直接創建列表
li = [1,2,3,4,"張三","李四"]
# 使用 list() 函數創建列表
li2 = list('123456789')
列表的常規操作
> 列表的作用是⼀次性存儲多個數據,程式員可以對這些數據進行的操作有:增、刪、改、查等等
訪問列表中的值
- 根據索引訪問列表元素
# 使用索引訪問列表元素的格式為:name_list[i]
name_list = ['張三', '李四', '王五','趙六']
print(name_list[0])
print(name_list[1])
print(name_list[2])
- 根據切片訪問列表元素
# 使用切片訪問列表元素的格式為:name_list[start : end : step]
name_list = ['張三', '李四', '王五','趙六']
print(name_list[0:4:2])
常用內置函數
方法 | 描述 |
---|---|
append() | 在列表最後添加一個數據 |
pop() | 從列表中刪除一個數據,預設刪除(根據索引)最後一個 |
sort() | 對數據進行排序,預設從小到大排序 |
reverse() | 倒置列表 |
count() | 統計列表中的某一個數據出現的次數 |
index() | 查找索引 |
extend() | 把可迭代對象里的數據一個一個追加到列表中 |
remove() | 刪除某個數據 |
insert() | 插入數據 |
clear() | 清空列表中的數據 |
copy() | 複製列表 |
# append() 在列表的最後添加一個數據
list_data = []
new_data = list_data.append("小明")
print(new_data)
print(list_data)
# pop() 從列表中刪除一個數據,預設刪除(根據索引)最後一個,相當於pop(-1)
list_data = [1, 2, 3, 4, 5, 6, 7]
data = list_data.pop()
print(list_data) # [1, 2, 3, 4, 5, 6]
print(data) # 7
list_data.pop(0)
print(list_data) # [2, 3, 4, 5, 6]
# sort(key,reverse) 對數據進行排序,預設從小到大排序,即預設是reverse=False
# 其他數據類型也是可以進行排序的,是根據ascll碼對應數值大小進行排序
list_data = [2, 3, 9, 6, 5, 2, 1]
list_data.sort()
print(list_data) # [1, 2, 2, 3, 5, 6, 9]
list_data.sort(reverse=True)
print(list_data) # [9, 6, 5, 3, 2, 2, 1]
# reverse() 倒置列表
list_data = [1, 3, 2]
list_data.reverse()
print(list_data) # [2, 3, 1]
# count() 統計列表中的某一個數據出現的次數,這裡需註意,不僅判斷數值大小,其數據類型也相同才會計數
list_data = [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
data = list_data.count(1) # 這裡與前面的方法不同,這個會返回一個值,需要變數來接收
print(list_data) # [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
print(data) # 3
print(list_data.count(2)) # 1
print(list_data.count('2')) # 3
# index() 查找索引,如果該數據有多個返回最前面的一個
list_data = [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
data = list_data.index(1) # 這裡與前面的方法不同,這個會返回一個值,需要變數來接收
print(list_data) # [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
print(data) # 0
# extend(可迭代對象) 把可迭代對象里的數據一個一個追加到列表中
list_data1 = [1, 3, 2]
list_data2 = [4, 5, 6]
list_data3 = "小明"
print(list_data1 + list_data2) # [1, 3, 2, 4, 5, 6]
list_data1.extend(list_data2) # 這裡與前面的方法不同,這個會返回一個值,需要變數來接收
print(list_data1) # [1, 3, 2, 4, 5, 6]
list_data1.extend(list_data3)
print(list_data1) # [1, 3, 2, 4, 5, 6, '小', '明']
# remove() 刪除某個數據,有多個時刪除最前面的
list_data = [1, 2, 3, 2]
list_data.remove(2)
print(list_data) # [1, 3, 2]
# insert(index, object) 插入數據
list_data = [1, 2, 3]
list_data.insert(0, "小明") # 0代表需要插入的位置的索引,”小明“為所需要插入的數據
print(list_data) # ['小明', 1, 2, 3]
# clear() 清空列表中的數據
list_data = [1, 2, 3]
list_data.clear()
print(list_data) # []
# copy() 複製列表 深複製 淺複製
list_data1 = [1, 2, 3]
list_data2 = list_data1
list_data2.pop()
print(list_data2) # [1, 2]
print(list_data1) # [1, 2]
list_data1 = [1, 2, 3]
list_data2 = list_data1
list_data2 = list_data1.copy()
list_data2.pop()
print(list_data2) # [1, 2]
print(list_data1) # [1, 2, 3]
修改列表元素
>Python 支持通過切片語法給一組元素賦值。在進行這種操作時,如果不指定步長(step 參數),Python 就不要求新賦值的元素個數與原來的元素個數相同;這意味,該操作既可以為列表添加元素,也可以為列表刪除元素。
- 修改單個元素
name_list = ['張三', '李四', '王五','趙六']
name_list[0] = '阿坤'
print(name_list)
- 修改一組元素
nums = [40, 36, 89, 2, 36, 100, 7]
#修改第 1~4 個元素的值(不包括第4個元素)
nums[1: 4] = [45.25, -77, -52.5]
print(nums)
列表的迴圈遍歷
- for迴圈
name_list = ['張三', '李四', '王五','趙六']
for i in name_list:
print(i)
- while迴圈
i = 0
name_list = ['Tom', 'Lily', 'Rose']
while i < len(name_list):
print(name_list[i])
i += 1
列表的嵌套
> 所謂列表嵌套指的就是⼀個列表⾥⾯包含了其他的⼦列表
list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(list1[1]) # [4, 5, 6]
print(list1[1][1]) # 5
元組(tuple)
>- (數據1,數據2,數據3,數據4,......)
>- 不可變數據類型,元組不可修改,列表中的元組也不可以修改,但元組中的列表可以修改。
>- 單個數據的元組,需要定義為tuple_data = (1, ),需要在後面加一個逗號
>- 空元組 tuple_data = () 或者 tuple_data = tuple()
元組數據查找
- 根據下標查找
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0])
- index():查找某個數據,如果數據存在返回對應的下標,否則報錯,語法和列表、字元串的index⽅法相同。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.index('aa')) # 0
- count():統計某個數據在當前元組出現的次數。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count('bb')) # 1
- len():統計元組中數據的個數。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1)) # 4
del刪除
- del,當創建的元組不再使用時,可以通過 del 關鍵字將其刪除
tup = ("python","yyds")
print(tup)
del tup
print(tup) # NameError: name 'tup' is not defined
元組數據不能修改
# 元組內的直接數據如果修改則⽴即報錯
# 但是如果元組⾥⾯有列表,修改列表⾥⾯的數據則是⽀持的。
tup = (1, 2, 3, [4, 5])
print(tup, id(tup)) # (1, 2, 3, [4, 5]) 1455401272328
tup[-1].append(6)
print(tup, id(tup)) # (1, 2, 3, [4, 5, 6]) 1455401272328
可變類型與不可變類型
>可變數據類型 :當該數據類型的對應變數的值發生了改變,那麼它對應的記憶體地址不發生改變,對於這種數據類型,就稱可變數據類型。
不可變數據類型: 當該數據類型的對應變數的值發生了改變,那麼它對應的記憶體地址也會發生改變,對於這種數據類型,就稱不可變數據類型。
"""數值"""
a = 1
print(a, id(a)) # 1 1440395456
a = a + 1
print(a, id(a)) # 2 1440395488
"""字元串"""
b = 'a'
print(b, id(b)) # a 2463434018520
b = b.upper()
print(b, id(b)) # A 2463434215920
"""列表"""
li = [1, 2, 3, 4, 5]
print(li, id(li)) # [1, 2, 3, 4, 5] 2464553888584
li.append(6)
print(li, id(li)) # [1, 2, 3, 4, 5, 6] 2464553888584
"""元組"""
tup = (1, 2, 3, [4, 5])
print(tup, id(tup)) # (1, 2, 3, [4, 5]) 2464553829384
tup[-1].append(6)
print(tup, id(tup)) # (1, 2, 3, [4, 5, 6]) 2464553829384
本文來自博客園,作者:大-鍋,轉載請註明原文鏈接:https://www.cnblogs.com/daguo118/p/17311336.html