1. 程式人生 > 其它 >字典內建方法(含筆試題!)

字典內建方法(含筆試題!)

字典內建方法

需要掌握!!

定義:大括號括起來,內部存放多個元素,元素與元素之間逗號隔開,元素的組織形式是:key:value鍵值對,其中key是對value的描述性性質的資訊,一般是字串,key必須是不可變型別,key不能重複,value是真正的資料,相當於變數值,可以是任意資料型別。

# 型別轉換
info = dict(name='tony', pwd=123, age=28)
info1 = {}
info2 = dict([['name', 'tony'], ('age', 18)])
print(info, info1, info2)

dic = {'name': 'jack', 'age': 18, 'hobbies':['game', 'music']}

# 1.按key取值
# print(dic['name'])
# print(dic['pwd'])  # 這時由於key不存在會報錯

# 2.按key修改值(key存在修改,不存在則新增,使用頻率很高高高高高高高高!!!!!!)
dic['name'] = 'jjjj'

dic['pwd'] = 123  # 新增新的鍵值對

# 3.統計字典內部 鍵值對 的個數
print(len(dic))

# 4.成員運算(預設只暴露key)
print(18 in dic)  # False
print('name' in dic)  # True

# 5.刪除元素
# 方式一:
# del dic['name']

# 方式二:字典的pop()括號中必須放內容,不能空著,可以將key所對應的鍵值對彈出,給出value,
# dic.pop('age')
# print(dic.pop('age'))  # 18

# 方式三:彈出鍵值對,組織成元組的形式,第一個元素是key,第二個元素是value,用的很少。
# dic.popitem()  ('hobbies', ['game', 'music'])

# 6.獲取value值
print(dic['name'])  # 鍵不存在則報錯,不推薦用該方式取值。
print(dic.get('name'))  # 鍵不存在預設返回None。
print(dic.get('pwd', '嘎嘎嘎'))  # 第二個引數是可以在key不存在時自定義返回的資訊。

# 7.keys() values() items(),獲取到的結果看成是列表,在python2中是列表,python3中是迭代器,items結果列表套元組,每個元組裡面有兩個值:key和value.

需要了解的!

dic = {'name': 'jack', 'age': 18, 'hobbies':['game', 'music']}

# 1.update()更新字典,存在則修改,不存在則建立
# dic.update({'name':'jasonLJ','pwd':123})

# 2.fromkeys()初始化字典,快速生成新字典
# dict.fromkeys(['k1','k2','k3'], [])
# 結果是{'k1': [], 'k2': [], 'k3': []}


# fromkeys   筆試題!!!!!!!!!!!!!

res = dict.fromkeys(['k1','k2','k3'], [])
res['k1'].append(111)
# 結果三個key的value全是 111,為什麼呢?
# 原因在於三個key指向同一個列表,所以一個新增值了,三個全部新增相同的值。
res['k1'] = 111  # 這樣就不會出現值全部相同的情況了。

# 3.setdefault()當鍵存在的情況下不修改,而是獲取該鍵對應的值。
print(dic.setdefault('name', 'jasonLJ'))  # jack
# 當鍵不存在的情況下,新增一組鍵值對,並且該方法的結果是新增的值。
print(dic.setdefault('pwd',123))  # 123

字典內容就到這裡了。。。