目錄
字典
通路對應鍵的值 dictionary.items()
添加、修改、删除字典元素
字典推導式,快速生成字典
集合
可以使用set函數建立集合
集合的添加和删除
集合的交集、并集與差集的運算(& | -)
清單、元組、字典、集合的對比
字典
任意對象的無序集合
dictionary = {'key1':'value1', 'key2':'value2', 'key3':'value3',......}
字典裡key 唯一,且不可變的
value不唯一
dictionary={} #空字典
dictionary = dict(zip(list1,list2)) #清單建立字典
zip():将多個清單或者元組對應位置的元素組為元組,,可以用list()函數将其轉為清單
name = ['鄧肯','吉諾比利','帕克'] # 作為鍵的清單
sign = ['石佛','妖刀','跑車'] # 作為值的清單
dictionary = dict(zip(name,sign)) # 轉換為字典
print(dictionary) # 輸出轉換後字典
{'鄧肯': '石佛', '吉諾比利': '妖刀', '帕克': '跑車'}
dictionary = dict(key1=value1,key2=value2,key3=value3,..... ) # 建立字典
dictionary = dict.fromkeys(list1) # 建立值為空的字典
name_list = ['鄧肯','吉諾比利','帕克'] # 作為鍵的清單
dictionary = dict.fromkeys(name_list)
print(dictionary)
{'鄧肯': None, '吉諾比利': None, '帕克': None}
元組作為鍵,清單作為值
name_tuple = ('鄧肯','吉諾比利', '帕克') # 作為鍵的元組
sign = ['石佛','妖刀' ] # 作為值的清單
dict1 = {name_tuple:sign} # 建立字典
print(dict1)
{('鄧肯', '吉諾比利', '帕克'): ['石佛', '妖刀']}
dict1 = {list1, list2} 會報錯
dictionary.clear() 清空字典
通路對應鍵的值 dictionary.items()
dictionary.get(key,[default])
default 指定鍵不存在傳回的值,預設None
周遊字典
dictionary.items()
dictionary = {'qq':'84978981','明日科技':'84978982','無語':'0431-84978981'}
for item in dictionary.items():
print(item)
('qq', '84978981')
('明日科技', '84978982')
('無語', '0431-84978981')
dictionary = {'qq':'4006751066','明日科技':'0431-84978982','無語':'0431-84978981'}
for key,value in dictionary.items():
print(key,"的聯系電話是",value)
qq 的聯系電話是 4006751066
明日科技 的聯系電話是 0431-84978982
無語 的聯系電話是 0431-84978981
添加、修改、删除字典元素
dictionary =dict((('鄧肯', '石佛'),('吉諾比利','妖刀'), ('帕克','跑車')))
dictionary["羅賓遜"] = "海軍上将" # 添加一個元素
print(dictionary)
{'鄧肯': '石佛', '吉諾比利': '妖刀', '帕克': '跑車', '羅賓遜': '海軍上将'} #添加
dictionary =dict((('鄧肯', '石佛'),('吉諾比利','妖刀'), ('帕克','跑車')))
dictionary["帕克"] = "法國跑車" # 添加一個元素,當元素存在時,則相當于修改功能
print(dictionary)
{'鄧肯': '石佛', '吉諾比利': '妖刀', '帕克': '法國跑車'} #修改
dictionary =dict((('鄧肯', '石佛'),('吉諾比利','妖刀'), ('帕克','跑車')))
del dictionary["帕克"] # 删除一個元素
print(dictionary)
{'鄧肯': '石佛', '吉諾比利': '妖刀'} # 删除一個元素del 直接就沒了
字典推導式,快速生成字典
import random #導入random标準庫
randomdict = {i:random.randint(10,100) for i in range(1,5)}
print("生成的字典為:",randomdict)
生成的字典為: {1: 92, 2: 53, 3: 70, 4: 84}
集合
也是無序的
set1 = {1, 2, 3, 7, 8} #集合
可以使用set函數建立集合
setname = set(iteration)
iteration : 表示要轉化為集合的可疊代對象
如果有重複元素,隻保留一個
建立空集合 隻能用 set() 不能是{} 這表示空字典
集合的添加和删除
add()
setname.add(element)
mr = set(['零基礎學Java','零基礎學Android','零基礎學C語言','零基礎學C#','零基礎學PHP'])
mr.add('零基礎學Python') # 添加一個元素
print(mr)
{'零基礎學C語言', '零基礎學Android', '零基礎學PHP', '零基礎學Python', '零基礎學C#', '零基礎學Java'}
删除 remove pop clear
mr = set(['零基礎學Java','零基礎學Android','零基礎學C語言','零基礎學C#','零基礎學PHP','零基礎學Python'])
mr.remove('零基礎學Python') # 移除指定元素
print('使用remove()方法移除指定元素後:',mr)
mr.pop() # 删除一個元素
print('使用pop()方法移除一個元素後:',mr)
mr.clear() # 清空集合
print('使用clear()方法清空集合後:',mr)
使用remove()方法移除指定元素後: {'零基礎學C語言', '零基礎學C#', '零基礎學PHP', '零基礎學Java', '零基礎學Android'}
使用pop()方法移除一個元素後: {'零基礎學C#', '零基礎學PHP', '零基礎學Java', '零基礎學Android'}
使用clear()方法清空集合後: set()
remove 指定的元素不存在将抛出異常
集合的交集、并集與差集的運算(& | -)
pf = set(['鄧肯','加内特','馬龍']) # 儲存大前鋒位置的球員名字
print('大前鋒位置的球員有:',pf,'\n') # 輸出大前鋒的球員名字
cf = set(['鄧肯','奧尼爾','姚明']) # 儲存中鋒位置的球員名字
print('中鋒位置的球員有:', cf,'\n') # 輸出中鋒的球員名字
print('交集運算:', pf & cf) # 輸出既是大前鋒又是中鋒的球員名字
print('并集運算:', pf | cf) # 輸出大前鋒和中鋒的全部球員名字
print('差集運算:', pf - cf) # 輸出是大前鋒但不是中鋒的球員名字
大前鋒位置的球員有: {'馬龍', '加内特', '鄧肯'}
中鋒位置的球員有: {'鄧肯', '姚明', '奧尼爾'}
交集運算: {'鄧肯'}
并集運算: {'加内特', '姚明', '奧尼爾', '馬龍', '鄧肯'}
差集運算: {'馬龍', '加内特'}
清單、元組、字典、集合的對比
資料結構 | 是否可變 | 是否重複 | 是否有序 | 定義符号 |
---|---|---|---|---|
清單 | 可變 | 可重複 | 有序 | [ ] |
元組 | 不可變 | 可重複 | 有序 | ( ) |
字典 | 可變 | 可重複 | 無序 | {key:value} |
集合 | 可變 | 不可重複 | 無序 | { } |