Python內建資料集合與字典

2021-10-19 13:09:17 字數 3796 閱讀 2845

不支援+,*, index, slice(因為集合無序不重複的)

支援in和not in

add: 新增單個元素

update: 新增多個元素

remove: 如果元素存在,刪除,否則報錯

discard: 如果元素存在,刪除,否則do nothing

pop: 隨機

刪除元素,集合為空則報錯

不支援+,*, index, slice(因為集合無序不重複的)

支援in和not in

集合(set)是乙個無序的不重複元素序列。1,2,3,4,1,2,3 = 1,2,3,4

1).   使用大括號  或者 set() 函式建立集合;

2). 注意:

建立乙個空集合必須用 set() 而不是

是用來建立乙個空字典。

s = #

print(s, type(s))

在輸出的時候直接去重

注意點1: 集合的元素必須時不可變資料型別。

s = ###列表是可變資料型別,所以這種書寫錯誤

注意點2:空集合不能使用{}, 而要使用set()

s = set()

print(1 in )

import random

n = int(input("輸入n:"))

s=set()

for i in range(n):

s.add(random.randint(1,1000))

print(sorted(s,reverse=true))

s =

s.add(100) #

s =

s.update() #

s =

s.remove(3)

print(s)

s =

s.discard(100)

print(s)

s =

s.pop()

print(s)

差集:s1 - s2

交集:s1 & s2

對稱差分:

s1 ^ s2

並集:s1 | s2

s1 =

s2 =

print(s1 - s2)#

print(s1 & s2)#

s1 =

s2 =

print(s1 ^ s2)# ,- =並集h減去交集,即連個集合中不重複元素的集合

print(s1 | s2)#

print(s1.issubset(s2)) # false

print(s1.isdisjoint(s2)) # false

因此 set 集合中所有能改變集合本身的方法(如 add、remove、discard、***_update 等),frozenset 都不支援;set 集合中不改變集合本身的方法,fronzenset 都支援。
s = frozenset()

print(s, type(s)) #

一種可變容器模型,且可儲存任意型別物件。 鍵一般是唯一的,如果重複最後的乙個鍵值對會替換前面的,值不需要唯一

key-value對或者鍵值對

d =

print(d, type(d))

d = {}#空字典

d =

print(『name』 in d) # true, 判斷是否為所有key值得成員

print(「westos」 in d) # false

檢視所有

keys, values, items

檢視區域性

d[key], d.get(key), d.get(key, default-value)

d =

print(d.keys())

# 檢視字典所有的key值

print(d.values())

# 檢視字典所有的value值

print(d.items())

# 檢視字典所有的key-value值(item元素)

print(d[『name』])

# 檢視key為name對應的value值

print(d[『province』])

# 檢視key對應的vlaue值,如果不存在會報錯。

print(d.get('province'))# 檢視key對應的vlaue值, 如果存在則返回,如果不在在則返回none.

print(d.get('province', "陝西"))# 檢視key對應的vlaue值, 如果存在則返回,如果不在在則返回預設值.

d =

d[『city』] = 「西安」

key不存在就新增

print(d) #

d[『city』] = 「北京」

key存在則修改value值

print(d) #

d =

d.setdefault(『city』, 「西安」) # key不存在就新增

print(d)

d.setdefault(『city』, 「北京」) # key存在,則do nothing

print(d)

d =

d.pop(『name』)

print(d)

d =

del d[『name』]

print(d)

d =

預設情況下,字典只會遍歷key值

for item in d:

print(item)

name

agecity

如果遍歷字典的key和value呢?(特別特別重要)

for key,value in d.items():  # [('name', 'westos'), ('age', 18), ('city', '西安')]

print(f"key=, value=")

key=name,value=westos

key=age,value=18

key=city,value=西安

defaultdict 提供default_factory 屬性,該為不存在的 key 來自動生成生成預設的 value。

from collections import  defaultdict

# 預設字典,設定預設value

d = defaultdict(int)

d['views'] += 1

d['transfer'] += 1

print(d) #defaultdict(, )

d = defaultdict(list)

d['deny_users'].extend(['user1', 'user2'])

print(d) #)

d = defaultdict(set)

d['love_movies'].add("黑客帝國")

d['dislike_movies'].update()

print(d) #, 'dislike_movies': })

兩數之和:

無重複的最長子串:

python字典元組集合內建方法

字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 dict 鍵必須是唯一的,但值則不必。dict 1.按key取值 print dict username dlrb print d1 鍵...

python 字典與集合

字典與集合 1.字典 字典的標誌是大括號 列表的標誌是中括號,元組的標誌是逗號 字典的形式,鍵可以是整形,可以是字串。2.dict函式 方法一 dict函式可以把乙個列表或元組構成乙個字典,dict 乙個引數 只能有乙個引數,所以例子中要使用多個括號使其成為乙個引數。方法二 形式 dict key ...

python字典與集合

字典就如同其表面意思一樣,乙個鍵對應乙個值,可以用鍵來訪問相應的值,其值可以取任意資料型別。字典的每個鍵值 key value 對用冒號 分割,每個鍵值對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 dic 鍵一般是唯一的,如果重複最後的乙個鍵值對會替換前面的,值不需要唯一。鍵必須是不可...