列表
容器類:
列表:list
#建立容器型別
curt =
#建立空列表
curt1 =
['test1'
,'test2'
,'test3'
] #建立有值的列表
print
(curt1)
#列表的特點:沒有長度限制、可以放任意型別、支援下標索引、支援切片
建立內容的訪問
內建函式
增、刪、改、查
增:() 列表的末尾追加
extend
() 列表的合併
insert
() 將物件插入到index的位置,後面的也將後移
刪:remove()
pop(
)clear()
del 列表[下標]
del 列表
改、查:
# idenx() 查詢物件,如果存在返回物件的位置,不存在就報錯
test =
['test1'
,'test2'
,'test3'
]t = test.
index
('test1'
) #這裡是通過index查詢元素的位置
print
(t)test[t]
='haha' #x修改列表中的元素,根據元素的位置將元素修改
print
(test)
切片
#從列表中取值,取乙個元素
print
(curt1[2]
) #2代表下標,下標從0開始
print
(len
(curt1)
) #通過內建函式len檢視列表長度
#佇列:先進先出與列表一致,
#列表切片同字串的切片
print
(curt1[:2
]) #取從0到2的值
print
(curt1[-1
]) #取列表的最後乙個值
print
(curt1[::-
1]) #逆序輸出整個列表
增
#向列表中追加元素
car_park =
car_park.
('湘a0001'
)car_park.
('湘a0002'
)car_park.
('湘a0003'
)car_park.
('湘a0005'
)print
(car_park)
#每取乙個列印一次
for i in car_park:
print
(i)#insert的使用(位置,元素),後面元素的位置將會後退
car_park.
insert(3
,'湘a0004'
) #3代表要去的位置
print
(car_park)
#extend()合併,將乙個可迭代的物件新增到列表中(一次新增多個元素的時候使用)
test1 =
['qq'
,'ww'
,'ee'
]test2 =
['aa'
,'ss'
,'dd'
]print
(test1)
print
(test2)
test1.
extend
(test2)
print
(test1)
刪
# remove刪除元素:根據元素刪除
#用法: remove()
test =
['test1'
,'test2'
,'test3'
]print
(test)
test.
('test1'
) #列表中執行存在相同的元素
print
(test)
test.
remove
('test1'
) #移除第一次出現的元素test1
print
(test)
print
(test.
remove
('test6'
))
#當元素沒找到在時會報錯:valueerror: list.
remove
(x): x not in list
# pop 刪除元素:根據位置(下標)刪除,不指定位置,刪除列表的最後乙個元素
test =
['test1'
,'test2'
,'test3'
]#test.pop(2) #刪除下標為2的元素
print
(test)
test.
pop(
) #刪除最後乙個元素
print
(test)
# del 刪除
test =
['test1'
,'test2'
,'test3'
]del test[
1] #系統刪除列表中的元素
print
(test)
del test #刪除列表,既清空內容也刪除位址
#clear() 清空內容
改
對列表的修改是通過元素在列表中的位置來進行修改的,只能修改單個元素
對普通列表的修改
list1 =[1
,2,3
,4,6
,]list1 [4]
=5 #這裡是修改下標為4的元素的值為5
print
(list1)
對深層列表中元素的修改
s =[1,
2,[5
,6],
7]s [2][
1]=11 #第乙個中括號中代表的是內層列表在深層列表中的位置,第二個代表的是內層列表找那個的位置,所以這裡就是修改6為11
print
(s)
合併與拷貝
'''
合併 join:''.
join
(列表) 把可迭代的合併成乙個字串
''裡面代表的是連線符 ,列表的型別不能是整型
t =[1,
2,3,
4,5,
6,7]
#print(''.join(t)) #當列表中的元素為整型時,就會報錯
#typeerror: sequence item 0: expected str instance, int found
t =str
(t)print
('-'
.join
(t))
import random
qq =
count =
0while true:
ran = random.
randint(0
,9)if count ==
0and ran ==
0: #這裡是表示第一次得到的值為0時執行下面
continue #跳過本次迴圈
qq.(str
(ran)
) #這裡是將整型轉為字串,因為輸入的為整形,不轉字元型別會報錯
count +=1
if count ==10:
break #退出整個while迴圈
print
(qq)
print(''
.join
(qq)
) #這裡是通過join將『』中的字元與後面的列表進行合併
拷貝淺拷貝
copy:
t =[
'test1'
,'test2'
,'test3'
]t_copy = t.
copy
() #將列表t進行一次copy
print
(t)print
(t_copy)
print
(t is t_copy) #判斷兩個列表是否是一樣的,是返回true,否則返回false
print(id
(t)) #檢視列表的id(位址),通過id判斷兩個列表是否一致
print(id
(t_copy)
) #在這種copy時修改t種的元素,不會影響t_copy的值
'''深層列表的拷貝
t =[[1
,2,3
],[4
,5,6
],[7
,8,9
]] #深層列表
print
(len
(t))
print
(t[2][
2]) #這是取列表中的位置為2的列表中位置為2的元素
t1 = t.
copy()
t[0][
1]=9 #修改列表t的位置為0的列表中位置為1的值為9
print
(t)print
(t1) #深層列表在修改了元素時,copy檔案也會發生改變
總結:copy
()是乙個淺拷貝
(所以使用淺拷貝時在深層列表中如果修改內層列表的值,拷貝的值也會發生改變)
'''
列表的增刪改查
列表的定義及使用 python中的資料型別 number bool intfloat complex list str tuple dict set列表特性 可以儲存任意型別的多個元素 允許相同元素的存在 列表是有序的,索引順序 列表的定義以及使用 scores 列表的長度 len 列表 索引值 下...
列表的增 刪 改 查
li alex 1,2,3 wusir egon 女神 taibai l1 li 0 l2 li 0 3 列表的四個操作,增 刪 改 查 li alex wusir egon 女神 print li while 1 name input 請輸入新增名字 if name.strip upper q b...
列表的增刪改查
建立乙個列表變數,names names zhangyang lihua wangxi dongshuai print names 0 2 表示對列表的切片 names.insert 1,leihaidong 表示插入到原來字串的某個位置,1,表示插入列表裡的第2個位置 names.remove l...