Python學習之字典 dictionary

2021-08-14 08:19:07 字數 3115 閱讀 5909

以下是根據《python基礎教程(第2版.修訂版)》整理的有關python中字典的相關函式的使用方法和注意事項。

# -*- coding: utf-8 -*-這個可以支援中文注釋

"""created on wed jan 3 15:58:01 2018

@author: douyh

"""'''*************************chapter 4: dictionary***************************'''

print('---------------this is for chapter 4 dictionary----------------------')

###how to create a dict###

a=b=dict(a='a',b=2,c=1)#等號前面不能用數字。雖然等號之前沒有用引號,但是也是字串

print(a,'\n',b)

#no.1

'''方法:clear

物件:字典

作用:清除字典中的所有項,與{}不同的是{}是直接改變繫結關係,對關聯的字典不會有影響

原地操作:是

'''print('1.clear')

a=b=a

a.clear()#會修改b

#a={}#不會修改b

print(a)

print(b)

#no.2

'''方法:copy

物件:字典

作用:淺複製

原地操作:替換不是,增刪是

'''print('2.copy')

from copy import deepcopy

a={}

a=b=a.copy()

c=deepcopy(a)#deepcopy

b['a'].remove('a')

print(a,'\n',b,'\n',c)

#no.3

'''方法:fromkeys

物件:字典

作用:fromkeys方法是使用給定的鍵建立新的字典,每個鍵都對應了預設的值none

原地操作:有返回值

'''print('3.fromkeys')

print(dict.fromkeys(['name','age']))

print(dict.fromkeys(['name','age'],'uknown'))#可以修改預設值

#no.4

'''方法:get

物件:字典

作用:get方法是乙個更寬鬆的訪問字典的方法,如果試圖訪問字典中不存在的項時,沒有任何

異常,而得到了none值,還可以定義自定義的值替換none

原地操作:

'''print('4.get')

d={}

print(d.get('a'),d.get('a','no'))

#no.5

'''方法:has_key,在py3.0中已經沒有了

物件:字典

作用:原地操作:

'''print('5.has_key')

#no.6

'''方法:items和iteritems

物件:字典

作用:items方法將字典所有的項以列表的形式返回,列表中每乙個項都表示為『對』的形式,但

並沒有特定的次序;而iteritems作用相同,只是返回迭代器而非列表,並更高效

原地操作:否

'''print('6.items and iteritems')

a=print(a.items())

#print(list(a.iteritems()))#py3中iteritems報錯

#no.7

'''方法:keys 和 iterkeys

物件:字典

作用:keys方法將字典中的鍵以列表形式返回,而後者則返回針對鍵的迭代器

原地操作:

'''print('7.key')

a=print(a.keys())#沒有iterkeys in py3

#no.8

'''方法:pop

物件:字典

作用:pop方法用來獲取給定鍵的值,然後將這個鍵-值對從字典中移除,注意一定要有輸入。

一次只能取出乙個來

原地操作:是,且有返回。

'''print('8.pop')

a=a.pop('a','b')#只能取出'a'

print(a)

#no.9

'''方法:popitem

物件:字典

作用:隨機彈出乙個項,相對pop更高效,因為不用首先獲取鍵的列表,字典中是沒有順序的

原地操作:

'''print('9.popitem')

a=a.popitem()#隨機彈出,但好像每次都是彈出了'c',但是字典中是沒有順序的。

print(a)

#no.10

'''方法:setdefault

物件:字典

原地操作:是

'''print('10.setdefault')

a.clear()

a=print(a.setdefault('a','c'))

print(a.setdefault('c','c'))

#no.11

'''方法:update

物件:字典

作用:利用乙個字典項更新另外乙個字典,提供的字典項會被新增到舊的字典中,如果有相同的

則進行覆蓋。

原地操作:是

'''print('11.update')

a.clear()

a=b=

a.update(b)

print(a)

#no.12

'''方法:values和itervalues

物件:字典

作用:以列表的形式返回字典中的值,後者返回迭代器####結果與書上好像不太一樣

原地操作:否

'''print('12.values')

a.clear()

a=print(a.values())

print(list(a.values()))#沒有itervalues,而這裡需要list,注意與key的區別。

#要加list應該是返回的迭代器?

Python基礎之字典dict

字典的特性,鍵值對出現 字典的定義 字典的key不可重複,如果key重複的話,預設最後乙個元素新增到字典中,多個元素之間用逗號分割。字典是無序的 定義乙個字典 例 dic 字典的常用方法 fromkeys 引數是乙個可迭代型別,把每乙個迭代物件變成字典的key,value預設為none 可以修改 例...

python基礎之字典 dict

字典 dict 是一種key value 字典是無序的,不能像str list 一樣 通過index查詢資料 字典內可以迴圈巢狀list dict等 列表key是唯一的,值不限制 學號 姓名 info 新增 修改 info 004 1 查詢print info.get 001 通過key獲取valu...

Python基礎之 字典dict

1.collections模組 collections模組包含除了dict set list tuple以外的一些特殊的容器型別,比如下面幾個 1 ordereddict類 排序字典,是字典的子類。2 defaultdict 使用工廠函式建立字典,使不用考慮缺失的字典鍵。3 counter類 為ha...