字典dictionary是內建的資料型別,是個無序的儲存結構,每一元素是key-value對
不允許同乙個鍵出現兩次。建立時如果同乙個鍵被賦值兩次,後乙個值會被記住.鍵必須不可變,所以可以用數字,字串或元組充當,而用列表就不行
字典支援無限極巢狀
>>
> dict4=
dict((
('小',18
),('da',12
)))>>
> dict4
>>
> dict4[
'xiaomao']=
12>>
> dict4 #增加乙個值
>>
> dict4[
'da']=
13>>
> dict4 #改變相應key對應的value
>>
> dict1=
>>
> dict1.fromkeys((1
,2,3
))>>
> dict1.fromkeys((1
,2,3
),('one'))
>>
> dict1.fromkeys((2
,4),
('one'
,'two'))
>>
> dict1 = dict1.fromkeys(
range(32
),'贊')
>>
> dict1 #range(a,n)是將a到n-1的數全部輸出
三種方法:keys(),values(),items(),分別求對應的值
get()方法:求某個值,如果在字典中則結果是該值。如果沒有得到null,但是如果之前get(3,『沒有』)則如果沒有3在字典裡面則會列印『沒有』
但如果是不用get方法直接訪問不存在的key,程式會報錯,所有用get方法更安全
找到了就返回本來應該返回的值
dict1 =
print
(dict1.get(
'浙大'))
#會返回none
print
(dict1[
'浙大'])
#會報錯
print
(dict1.get(
'浙大'
,'do not find'))
#會返回do not find
#沒有找到的時候可以返回預設值
也可以直接用成員資格操作符in,not in
>>
> dict8=
dict
.fromkeys(
range(3
),'加油!'
)>>
> dict8 #fromkeys()用於建立字典
三種方法:keys(
),values(
),items(
)>>
>
for each in dict8.keys():
print
(each)01
2>>
>
for i in dict8.values():
print
(i)加油!
加油!加油!
>>
>
for i in dict8.items():
print
(i)(0,
'加油!')(
1,'加油!')(
2,'加油!'
)>>
>dict1 =
>>
>
print
(dict1.keys)
dict_keys(
['清華'
,'北大'
,'南昌'])
#將dict1的key全部列印出來
#同理還有print(dict1.values) , print(dict1.items)
#enumerate函式:用這個列舉函式會返回每乙個的下標和key
>>
>
for i,a in
enumerate
(dict1)
:>>
>
print
(i,a)
0 清華
1 北大
2 南昌 #上下的兩組差異就是上面乙個分開返回
>>
>
for i in
enumerate
(dict1)
:>>
>
print
(i)(0,
'清華')(
1,'北大')(
2,'南昌'
)get(
)方法》
> dict8.get(3)
>>
>
print
(dict8.get(3)
)none
>>
>
print
(dict8.get(2,
'沒有'))
加油!>>
>
print
(dict8.get(5,
'沒有'))
沒有成員操作符in,not
in使用:判斷是否在裡面
>>
>
3in dict8 #判斷3是否在字典dict8中
false
>>
>
3not
in dict8
true
>>
>
2in dict8
true
clear()方法:清空
>>
> dict1=
dict
.fromkeys(
(range(2
,6))
,'歐克'
)>>
> dict1
>>
> dict1.clear(
)#清空字典
>>
> dict1
pop():將字典元素丟擲,類似於棧中的pop方法
popitem() :隨機返回並刪除字典中的最後一對鍵和值。如果字典已經為空,卻呼叫了此方法,就報出keyerror異常。返回乙個鍵值對(key,value)形式,按照 lifo(last in first out 後進先出法) 順序規則,即最末尾的鍵值對。
setdefault() :如果鍵不在字典中,則使用預設值插入鍵。
如果key在字典中,則返回key的值,否則為預設值。
>>
> dict8=
dict
.fromkeys(
range(3
),'加油!'
)>>
> dict8.pop(2)
'加油!'
>>
> dict8
>>
>dict8.popitem()(
4,'加油!'
)
小甲魚 例題
假設a,b為非空迴圈鍊錶的尾指標 status是函式的型別,其值是函式結果狀態 如ok等 9 typedef int elemtype elemtype型別根據實際情況而定,這裡假設為int 10 11 typedef struct node 12node,linklist 1617 初始化帶頭結點...
小甲魚線性表
線性表的抽象資料型別 抽象資料型別就是把型別和操作 在一起,資料元素之間的關係是一對一的關係 adt 線性表 list data 資料 資料就是裡面所有的元素 線性表的資料物件集合,每個元素的型別均為datatype operation initlist l 初始化操作,建立乙個空的線性表l lis...
小甲魚 看後有感
list.extend 可以增加多個元素,格式為元素組 list.insert a,b 只能增加單個元素,啊為位置,b為元素 字串string 元組tuple 列表list都可以進行比較運算,由第一位元素開始比較,大小由編碼格式對元素排序順序決定。比較運算 l.reverse與l.sort reve...