Python列表
1.list:
list是一種有序的集合知允,可以隨時添加和刪除其中的 元素。(從0開始)
['a','b','c']
[]是一個空列表叙谨,不包含任何值温鸽。類似于空字符串。
1.1用下標(biāo)取值
names = ['cat','dog','rat']
a = names[0]
print(a)
索引值從0開始唉俗。
數(shù)組越界時報錯IndexError
嗤朴。下標(biāo)是整數(shù),如果是其他的字符或浮點數(shù)報錯TpyeError
列表中可以包含其他的值虫溜,字典,列表股缸、數(shù)字衡楞,字符等
1.2負(fù)數(shù)下標(biāo)
names = ['cat','dog','rat']
a = names[-1]
print(a)
-1表示列表的最后一位。-2表示倒數(shù)第二位敦姻。
1.3使用切片取子列表
第一個整數(shù)是切片開始時的下標(biāo)
第二個整數(shù)是結(jié)束時的下標(biāo)瘾境,但是不包括這個值。
切片-處理部分元素a[A:B]
A:起始位置
B:最終位置(不包含)
players = ['a','b','c']
print(players[1:2])
可以省略一個值镰惦,省略第一個值為0迷守,省略第二個為列表末尾
輸入最后兩個元素
print(players[-2:])
復(fù)制列表
players_new = players[:]
print(players_new)
1.4用len()取得列表的長度
列表長度
print(len(cars))
1.5用下標(biāo)改變列表的值
names[0] = 'first'
print(names)
1.6列表連接和運算
+操作符 連接列表
['cat','dog','rat']+['cat','dog','rat']
*操作符 復(fù)制列表
['cat','dog','rat'] * 3
1.7 del刪除值
del name[0]
2.1便利列表
for i in range(4):
print(i)
>>>0,1,2旺入,3
遍歷整個數(shù)組
for i in range(len(name)):
print(name(i))
2.2 in 和not in
'a' in ['a','b']
>Ture
'c' not in ['a','b']
>Ture
2.3多重復(fù)值
cat = ['fat','black','loud']
size,color,disposition = cat
*變量的數(shù)目和列表的長度必須嚴(yán)格相等兑凿,否則會報錯ValueError
2.4賦值操作
a += 1 -> a = a + 1
3.0 方法
3.1index()方法
names = ['cat','dog','rat']
names.index('cat')
> 0
如果列表中不存在改值,報錯ValueError
列表中有重復(fù)的值的時候茵瘾,返回第一個值的下標(biāo)
3.2 append()和insert()添加值
names = ['cat','dog','rat']
names.append('cat')
>['cat','dog','rat'礼华,'cat']
append()添加到列表末尾
insert()可以在人意下標(biāo)插入值
names = ['cat','dog'拗秘,'rat']
names.insert(1圣絮,'add')
>['cat','add'雕旨,'dog'扮匠,'rat']
append()和insert()是在原有的列表中操作捧请,并不返回新的列表
3.3 remove()從列表中刪除值
names = ['cat','dog'棒搜,'rat']
names.remove('cat')
>['dog'疹蛉,'rat']
刪除的值不存在,報錯
ValueError
有多個值的時候刪除第一個值
3.4 sort()方法排序
按照字母排序(永久性)
cars = ['bmw','audi','toyota']
cars.sort()
print(cars)
按照字母相反順序排序
cars.sort(reverse = True)
print(cars)
reverse
關(guān)鍵字參數(shù)為True
則為逆序排序該方法不返回值為空
不能對既有數(shù)字又有字符串的數(shù)組排序帮非,否則報錯
TypeError
排序按照ASCII表氧吐,而不是實際的順序,因此末盔,大寫字母永遠(yuǎn)在小寫字母之前
如果想按照普通字符排序 應(yīng)該:
cars = ['bmw','audi','toyota']
cars.sort(key=str.lower)
print(cars)
該寫法講排序時的大寫字符改成小寫筑舅,但不改變實際的值
3.5 Python中的縮進(jìn)例外
print('aaaaaaaaaaa' + \
'bbbbbbbbbb')
\ 可以看作是‘這條指令在下一行會繼續(xù)’
3.6類似的列表:字符串和元組
隨機(jī)下標(biāo) random.randint(0,len(meaasges - 1))
name = 'abc'
name[0] -> 'a'
字符串不可以改變,只能重新生成新的字符串
4.0 元組
4.1 定義
eggs = ('1',2,0.5)
元組和字符串一樣陨舱,是不可變的翠拣;
元組不能添加,修改游盲,刪除他們的值误墓。
如果只有一個值,要在值末尾加上逗號
name = ('first',) -> 元組
name = ('first') -> 字符串
元組里面的數(shù)據(jù)可以重復(fù)
4.2 list()和tuple()來轉(zhuǎn)換類型
4.3引用
在字符串時:
a = 100
b = a
a = 50->此時 a = 50| b =100,因為a益缎,b是不同的變量
在列表中:
a = [1,2,3]
b = a
a[0] = 0
_>c此時: a=b = [0谜慌,1,2]莺奔。變量就是包含值的盒子欣范,a,b都是引用令哟,類似于指針恼琼。
變量包含對列表值的引用,而不是列表值本身屏富;
不可變數(shù)據(jù)類型晴竞,字符串、整型狠半,元組噩死,保存變量值本身
4.4引用傳遞
在使用函數(shù)傳遞列表和字典時候,函數(shù)內(nèi)部對列表和字典的改變會改變函數(shù)外部的值
def change(temp):
temo.append('last')
a = [1,2,3]
change(a)
——>執(zhí)行完成后典予,a = [1,2,3,'last']
‘包含’列表的變量甜滨,實際上并未真的直接包含列表,他們包含的是列表的‘引用’(‘引用’包含ID數(shù)字)
4.5copy模塊的copy()和deepcopy()函數(shù)
1.使用copy.copy()函數(shù)瘤袖,可以重新生成一個可變數(shù)組衣摩,在對其進(jìn)行操作,不會影響原本的值
impor copy
sapm = [1,2,3,4]
change = copy.copy(sapm)
change[0] = 'first'
__>samp = [1,2,3,4] ---change=['first',2,3,4]
copy.depcop()函數(shù)可以復(fù)制列表中包含的列表。
int('3'*2)
->33