-
Python dict的特點
比list查找速度快,占用內(nèi)存大,完全key和value一致,但是無序??梢圆恢貜?/p>
key不可變,tuple可做key,比如:
key = (1, 2, 3) # 以tuple作為key
d[key] = True
key = [1, 2, 3]
d[key] = True
# 報錯條件遍歷,如成績超過60的,在這種情況下,我們需要則需要遍歷dict(這種時候需要使用for循環(huán)):
?第一種是遍歷dict的所有key,并通過key獲得對應的value。
d = {
? ?'Alice': 45,
? ?'Bob': 60,
? ?'Candy': 75,
? ?'David': 86,
? ?'Ellena': 49
}
for key in d: # 遍歷d的key
? ?value = d[key]
? ?if value > 60:
? ? ? ?print(key, value)
# ==> Candy 75
# ==> David 86第二種方法是通過dict提供的items()方法,items()方法會返回dict中所有的元素,每個元素包含key和value。
for key, value in d.items():
? ?if value > 60:
? ? ? ?print(key, value)
# ==> Candy 75
# ==> David 86任務:請把每個同學的每次成績依次輸出。
d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
for key, value in d.items():
? ?for score in value:
? ? ? ?print(key, score)查看全部 -
在dict中,使用keys()方法,可以返回dict的所有key,在刪除某個元素時,可以通過這個方法先判斷某個元素是否存在,
d = {
? ?'Alice': 45,
? ?'Bob': 60,
? ?'Candy': 75,
? ?'David': 86,
? ?'Ellena': 49
}
name = 'Alice'
if name in d.keys():
? ?d.pop(name)
else:
? ?print('{} not in d'.format(name))查看全部 -
Python更新dict元素
d['Bob'] = 75
當key不存在時,往dict中添加對應的key: value元素。當key存在時,會更新dict,用新的value替換原來的value。
因此,在使用賦值語句往dict中添加元素時,為了避免不必要的覆蓋問題,我們需要先判斷key是否存在,然后再做更新。d.get('Alice')不會報錯。
查看全部 -
添加dict元素
d = {? ?'Alice':[45],? ?'Bob': 60}
d['Alice'].append(75)? #Alice對應的value值是列表
print(d)#{'Alice': [45, 75], 'Bob': 60}
d['Mimi'] = [72, 73]
print(d)#{'Alice': [45, 75], 'Bob': 60, 'Mimi': [72, 73]}
查看全部 -
讀取dict元素
方法一
d = {'Alice': 45,? ?'Gaven': 86}
print(d['Alice']) # ==> 45
print(d['Dodo'])# 拋出異常,字典里沒有Dodo
if 'Alice' in d:
? ?print(d['Alice']) # ==> 45? #以避免錯誤。if 'Dodo' in d: # Dodo不存在,所以不會走下面的邏輯
? ?print(d['Dodo'])
方法二把key當作參數(shù)傳遞給get方法,就可以獲取對應的value,當key不存在時,也不會報錯,而是返回None。
print(d.get('Alice')) # ==> 45
print(d.get('Dodo')) # ==> None
因此更加推薦使用get方法來獲取dict的元素。查看全部 -
什么是dict字典
我們使用花括號{}表示這是一個dict,
然后key和value之間使用冒號:分割,
并且每一組key:value的最后,以逗號,表示這一組的結束。
d = {
? ?'Alice': 45,
? ?'Bob': 60,
? ?'Candy': 75,
? ?'David': 86,
? ?'Ellena': 49
}查看全部 -
對于tuple中的組合數(shù)據(jù)類型,可變。
這里T有三個元素,第一個元素是數(shù)字類型,第二個元素是字符串類型,第三個元素是列表類型的,我們嘗試修改第三個元素的數(shù)據(jù)。
T = (1, 'CH', [3, 4])
L = T[2]
print(L) # ==> [3, 4]
# 嘗試替換L中的元素
L[1] = 40
print(L) # ==> [3, 40]
print(T) # ==> (1, 'CH', [3, 40])查看全部 -
創(chuàng)建單個元素的tuple
T = (1, )
義只有一個元素的tuple,需要在元素后面添加一個逗號,。
查看全部 -
count()方法用來統(tǒng)計tuple中某個元素出現(xiàn)的次數(shù)。
T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9)
print(T.count(1)) # ==> 3
對于不存在的元素,count方法不會報錯,而是返回0,這是合理的,因為元組里面有0個不存在的元素。T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9)
print(T.count(10)) # ==> 0index()方法返回指定元素的下標,當一個元素多次重復出現(xiàn)時,則返回第一次出現(xiàn)的下標位置。當指定的元素不存在時,使用index()方法Python會報錯。
T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9)
T.index(9) # ==> 10
T.index(1) # ==> 0 # 多次出現(xiàn),返回第一次出現(xiàn)的位置查看全部 -
什么是tuple元組
元組(tuple)和list一樣,也是一個有序容器,在元組中,同樣可以包含0個或者多個元素,并且也支持索引訪問、切片等操作。
tuple是固定不變的,一旦變成tuple,tuple中的每一個元素都不可被改變,同時也不能再往tuple中添加數(shù)據(jù),而list是可以的。
T = ('Alice', 'Bob', 'Candy', 'David', 'Ellena')
print(T) # ==> ('Alice', 'Bob', 'Candy', 'David', 'Ellena')
L = list(T)#元組轉換為列表
T = tuple(L)#列表轉換為元組查看全部 -
Python二維list
alice_scores = [100, 89, 92]
bob_scores = [70, 65, 81]
candy_scores = [88, 72, 77]
all_scores = [alice_scores, bob_scores, candy_scores]
print(all_scores) # ==> [[100, 89, 92], [70, 65, 81], [88, 72, 77]]
score = all_scores[1][2] # ==> 81有三個長方體,他們的長寬高分別是[1, 2, 3], [5, 3, 2], [7, 3, 2],定義在數(shù)組L中,L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]],請分別求出三個長方體的表面積。
L = [[1,2,3], [5, 3, 2], [7,3,2]]
for cube in L:
??? length = cube[0]
??? width = cube[1]
??? height = cube[2]
??? result = length * width * 2 + width * height * 2 + length * height * 2
??? print(result)查看全部 -
Python從list刪除元素
pop()方法默認刪除列表的最后一個元素,并返回。
L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
name = L.pop()
print(name) # ==> Ellena
print(L) # ==> L = ['Alice', 'Bob', 'Candy', 'David']pop()還可以接收一個參數(shù),指定需要刪除的元素的位置。
L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
name = L.pop(2)
print(name) # ==> Candy
print(L) # ==> ['Alice', 'Bob', 'David', 'Ellena']查看全部 -
Python向list添加新的元素
用append()方法,把新同學追加到列表的末尾:
names = ['Alice', 'Bob', 'David', 'Ellena']
names.append('Candy')
print(names) # ==> ['Alice', 'Bob', 'David', 'Ellena', 'Candy']insert()方法,插入當中。分別是需要插入的位置,以及需要插入的元素。
names = ['Alice', 'Bob', 'David', 'Ellena']
names.insert(2, 'Candy')
print(names) # ==> ['Alice', 'Bob', 'Candy', 'David', 'Ellena']查看全部 -
Python倒序訪問list
可以使用-1來表示最后一個元素。
names = ['Alice', 'Bob', 'David', 'Ellena']
print(names[-1]) # ==> Ellena查看全部 -
按索引訪問list
通過索引訪問列表里面的元素
names = ['Alice', 'Bob', 'David', 'Ellena']
print(names[0])列表和字符串一樣,也支持切片,通過切片的方式,獲取到列表的子列表。
names = ['Alice', 'Bob', 'David', 'Ellena']
sub_names = names[0:2]查看全部
舉報