列表類中提供的方法

1.列表特色:

a.中括號括起來

b.逗號分隔每一個元素

c.列表中的元素能夠是數字、字符串、列表、布爾值……全部的都能放進去

d.列表是一個集合,內部能夠放置任何東西

e.能夠經過索引取值,能夠一直往裏找

li = [1, 2, 3, ['yu', 'gh', 'jk', ['py', 16, 'op'], 23], True, 'cyx']
v = li[3][3][0][1]
print(v)

f.能夠經過切片取值,切片結果也是列表

li = [1, 2, 3, ['yu', 'gh', 'jk', ['py'], 23], True]
print(li[3])
print(li[2:4])

g.支持for循環,支持while循環

li = [1, 2, 3, ['yu', 'gh', 'jk', ['py'], 23], True, 'cyx']
for item in li:
print(item)

h.字符串一旦建立不可修改,列表元素能夠被修改,由於列表在內存中是以鏈表的形式存儲,鏈表表示各元素在內存中不連續,但上一個元素的位置會同時存儲下一個元素的位置信息,能夠經過索引或切片的方式修改

字符串能夠經過索引取值,可是不能修改這個值(由於字符串建立後不可更改)

列表既能夠經過索引取值,也能夠經過索引修改這個值

li = [1, 2, 3, ['yu', 'gh', 'jk', ['py'], 23], True, 'cyx']
li[1] = [11, 22, 33, 44]
print(li)
li = [1, 2, 3, ['yu', 'gh', 'jk', ['py'], 23], True, 'cyx']
li[1:3] = [20, 30]
print(li)

i.刪除,能夠經過索引或切片刪除

li = [1, 2, 3, ['yu', 'gh', 'jk', ['py'], 23], True, 'cyx']
del li[1]
print(li)
li = [1, 2, 3, ['yu', 'gh', 'jk', ['py'], 23], True, 'cyx']
del li[0:4]
print(li)

j.支持in操做

li = [1, 2, 3, ['yu', 'gh', 'jk', ['py'], 23], True, 'cyx']
v = 20 in li
print(v)

k.字符串轉換成列表,list在內部使用for循環

s = 'qwertyuioopasdfghjkl'
v = list(s)
print(v)

l.由於數字不能進行for循環,而列表在轉換時利用的就是for循環,因此數字不能用list轉換爲列表

m.列表轉換爲字符串

m1.寫for循環:列表裏既有數字,也有字符串

s = ''
li =[11, 22, 33, '123', 'alex']
for i in li:
s = s + str(i)
print(s)

s = ''
li = [1, 2, 3, ['yu', 'gh', 'jk', ['py', 16, 'op'], 23], True, 'cyx']
for i in li:
s = s + str(i)
print(s)

m2.用str轉換隻能在列表總體加'',不能去掉列表內部逗號

li = [1, 2, 3, ['yu', 'gh', 'jk', ['py', 16, 'op'], 23], True, 'cyx']
v = str(li)
print(v)

m3.''.join():只有字符串時可使用

li =['123', 'alex']
s = ''.join(li)
print(s)

o.在python裏none表示空值 ,iterable表示可迭代的對象(字符串、聊表)

p.append:原來值最後追加

li = [11, 22, 33, 44]
li.append(5)
print(li)

q.clear:清空

li = [11, 22, 33, 44]
li.clear()
print(li)

r.copy:淺拷貝

li = [11, 22, 33, 44]
v = li.copy()
print(v)

 s.count:計算元素出現的次數

li = [11, 22, 33, 44, 22]
v = li.count(22)
print(v)

t.extend:擴展原列表,內部有執行for 循環,因此參數需爲可迭代對象

append:把參數當成總體追加

li = [11, 22, 33, 44, 22]
li.append([5656, 'cyx'])
print(li)

li = [11, 22, 33, 44, 22]
li.extend([5656, 'cyx'])
print(li)

li = [11, 22, 33, 44, 22]
for i in [5656, 'cyx']:
li.append(i)
print(li)
li = [11, 22, 33, 44, 22]
li.extend('集合吧')
print(li)

u.index: 根據值獲取當前值索引位置,默認左邊優先,找到第一個就不找了,能夠設置起始和結束位置

li = [11, 22, 33, 44, 22]
v = li.index(22)
print(v)

v.insert :在指定索引位置插入元素

li = [11, 22, 33, 44, 22]
li.insert(2, 'cyx')
print(li)

w. pop 默認刪除最後一個值,並獲取刪除的值,能夠加索引指定刪除

li = [11, 22, 33, 44, 22]
v = li.pop()
print(li)
print(v)
li = [11, 22, 33, 44, 22]
v = li.pop(3)
print(li)
print(v)

 x.remove刪除列表中的指定值,左邊優先

li = [11, 22, 33, 44, 22]
li.remove(22)
print(li)

  注: pop remove del[0]  del[0:3]  clear都表示刪除python

y.reverse將當前列表進行翻轉、顛倒

li = [11, 22, 33, 44, 22]
li.reverse()
print(li)

z.sort 排序,默認從小到大排序

列表是有序的,元素能夠被修改

li = [11, 22, 33, 44, 22]
li.sort()
print(li)

li = [11, 22, 33, 44, 22]
li.sort(reverse = True)
print(li)

 2.元組:對列表的二次加工,書寫格式爲加(),元素不可被修改,不能被增長或者刪除

通常寫元組的時候,在最後一位加,,不會報錯,爲了將元組和參數區分開來app

 a.索引取值,能夠一直往裏找

tu = (11, 22, 33, 44, 22)
v = tu[0]
print(v)
tu = (11, 22, 33, [(33,44)], 44, 22,)
v = tu[3][0][0]
print(v)

b.切片取值,結果還是元組 

tu = (11, 22, 33, 44, 22)
v = tu[0]
print(v)

c.for 循環,因此元組也屬於可迭代對象

tu = (11, 22, 33, 44, 22)
for item in tu:
print(item)

d.字符串、列表、元組都是可迭代對象,字符串和列表均可以轉換成元組

li = [11, 22, 33, 44, 22]
v = tuple(li)
print(v)
s = 'sgjdkhie'
v = tuple(s)
print(v)

元組轉換爲列表oop

tu = (11, 22, 33, 44, 22)
v = list(tu)
print(v)

元組轉換爲字符串測試

1)元素都是字符串時ui

tu = ('hui', 'qwe')
v = ''.join(tu)
print(v)

2)元素爲字符串和數字組合時,需寫for 循環spa

s = ''
tu = (123, 'qwe')
for i in tu:
s = s + str(i)
print(s)

e.元組也是有序的

f.元組的一級元素不可修改、刪除、增長

tu = (11, 22, 33, [(33,44)], 44, 22,)
tu[3][0] = 567
print(tu)
[(33,44)]中的33不可修改,由於它屬於(33,44)的一級元素

g.count:獲取指定元素在元組中出現的次數

h.index獲取某個值得索引位置

3.字典dict:

a.基本結構

逗號分隔,一個元素稱爲鍵值對

鍵值對中的value能夠是任何值,能夠嵌套

數字、字符串、元組(不能被修改)、布爾值(可能會和0,1重複)能夠作爲key值,列表(動態的)不能夠做爲字典的key

字典保存時是按照哈希表來保存的,字典在內存中生成的是一張表格,key到內存裏會轉換成一堆數字和數字有對應關係

建立字典:orm

info = {'k1': 'v1', 'k2': 'v2'}

b.字典是無序的,每次print,元素順序會變

c.索引方式找到指定值

info = {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33,{'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}
v = info['k1']
print(v)
info = {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33,{'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}
v = info['k3'][5]['kk3'][0]
print(v)

d.支持del刪除

info = {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33,{'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}
del info['k1']
print(info)
info = {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33,{'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}
del info['k3'][5]['kk1']
print(info)

e.不支持while循環,支持for 循環,默認for循環時只輸出key,也能夠定義只輸出value,也能夠定義獲取鍵值對

info = {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33,{'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}
for item in info:
print(item)
info = {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33,{'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}
for item in info.keys():
print(item)
info = {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33,{'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}
for item in info.values():
print(item)
info = {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33,{'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}
for k, v in info.items():
print(k, v)

e.k值重複時,只能保留一個;布爾值和0或1重複時,也沒法顯示;沒有0或1時,布爾值能夠正常顯示

info ={ 1: 'asdf', "k1": 'asdf','k1': "123",(11,22): 123,}
print(info)
info ={ 1: 'asdf', "k1": 'asdf', True: "123",(11,22): 123,}
print(info)
info ={ 7: 'asdf', "k1": 'asdf', True: "123",(11,22): 123,}
print(info)

f.clear/copy

g.fromkeys根據序列建立字典,而且指定統一的值

dic ={ 'k1': 'v1', "k2": 'v2'}
v = dict.fromkeys(['qw', 123, 'uio'], 123)
print(v)
dic ={ 'k1': 'v1', "k2": 'v2'}
v = dict.fromkeys('dffhkji', 123)
print(v)

h.經過索引的方式取key,若key不存在會報錯

經過get方式取key,若key不存在會輸出空值,不會報錯,還能夠指定第二個參數,表示若是key不存在,默認把第二個參數返回,key值存在的話,會直接忽略第二個參數

dic = {'k1': 'v1', "k2": 'v2'}
v = dic.get('k333')
print(v)
dic = {'k1': 'v1', "k2": 'v2'}
v = dic.get('k333', 1111)
print(v)

i.pop刪除的同時,能夠得到刪除的value,參數能夠加默認值,當key不存在時,會將默認值返回

dic = {'k1': 'v1', "k2": 'v2'}
v = dic.pop('k1')
print(dic, v)
dic = {'k1': 'v1', "k2": 'v2'}
v = dic.pop('k1111', 'lop')
print(dic, v)

j.popitem不加參數,隨機刪鍵值對,並獲取值

dic = {'k1': 'v1', "k2": 'v2'}
v = dic.popitem()
print(dic, v)
dic = {'k1': 'v1', "k2": 'v2'}
k, v = dic.popitem()
print(dic, k, v)

k.setdefault的功能爲設置值,若是key已經存在,不設置,但會獲取當前key對應的value;若是key不存在,則會設置,並獲取當前key對應的值

dic = {'k1': 'v1', "k2": 'v2'}
v = dic.setdefault('k1', 123)
print(dic, v)
dic = {'k1': 'v1', "k2": 'v2'}
v = dic.setdefault('k1111', 123)
print(dic, v)

l.update已經存在的覆蓋掉,不存在的更新進去,用兩種調用方式

dic = {'k1': 'v1', "k2": 'v2'}
dic.update({'k1': 123, 'k3': 'uiop'})
print(dic)
dic = {'k1': 'v1', "k2": 'v2'}
dic.update(k1=123, k2=456, k3='klj')
print(dic)

m.支持in操做,默認判斷key

dic = {
"k1": 'v1'
}

v = "k1" in dic
print(v)

v = "v1" in dic.values()
print(v)

n.enumerate用法:同時得到索引和值

list1 = ["這", "是", "一個", "測試"]對象

for index, item in enumerate(list1): 排序

    print index, item 索引

>>>

0 這

1 是

2 一個

3 測試

 

 list1 = ["這", "是", "一個", "測試"]

for index, item in enumerate(list1, 1):

print index, item

>>>

1 這

2 是

3 一個

4 測試

 4.數據類型和變量總結

a.按可變不可變分

從新賦值後,用id(變量名)查看,id地址改變,說明其爲不可變,修改其值,id地址不變,說明其爲可變

可變:列表  字典

不可變:字符串  數字  元組

b.按訪問順序分

按索引順序訪問:元組字符串  列表  

key value映射方式訪問:字典

直接訪問:數字

c.存放元素個數

容器類型:列表  元組  字典

原子類型:數字  字符串

 

字典查詢速度比列表快,但字典佔得內存高

 

必需要背的:

1、數字
int(..)
2、字符串
replace/find/join/strip/startswith/split/upper/lower/format
tempalte = "i am {name}, age : {age}"
# v = tempalte.format(name='alex',age=19)
v = tempalte.format(**{"name": 'alex','age': 19})
print(v)
3、列表
append、extend、insert
索引、切片、循環
4、元組
忽略
索引、切片、循環 一級元素不能被修改
5、字典
get/update/keys/values/items
for,索引
6、布爾值
0 1
bool(...)
None "" () [] {} 0 ==> False
dic = {    '植物':        {'草本植物':             ['牽牛花', '瓜葉菊', '葫蘆', '翠菊', '冬小麥', '甜菜'],         '木本植物':             ['喬木', '灌木', '半灌木', '如鬆', '樟'],         '水生植物':             ['荷花', '千屈菜', '菖蒲', '黃菖蒲', '水蔥', '再力花', '梭魚草']},    '動物':        {'兩棲動物':             ['山龜', '山鱉', '石蛙', '娃娃魚', '蟾蜍', '龜', '鱷魚', '蜥蜴', '蛇'],         '禽類':             ['雉雞', '原雞', '長鳴雞', '昌國雞', '鬥雞', '長尾雞', '烏骨雞'],         '哺乳類動物':             ['虎', '狼', '鼠', '鹿', '貂', '猴', '梭魚草', '貔', '樹獺', '斑馬', '狗']}}
相關文章
相關標籤/搜索