day08 set的功能,創建方法。和字典的創建其他方法及字典的功能。

set的創建方法和字典的創建方法

'''

set 是一個無序的、不重復的集合容器。會自動過濾重復的元素。

set的創建方法:1、set() -> new empty set object

2、set(iterable) -> new set object

注:創建一個空的set,不能set1={},因為這表示的是一個字典。

'''

#創建一個長度為0的set

set1=set()

print(set1)

print(type(set1))

print(len(set1))

#set的自動去重復

set1={1,2,3,1,2}

print(set1)

#set后面加一個可迭代的,可以直接創建set

set2=set([0,1,2,0,1])

print(set2)

set2=set('abc')

print(set2)

print('*********************華麗的分割線*********************')

'''

字典的創建方法:

|? dict() -> new empty dictionary

|? dict(mapping) -> new dictionary initialized from a mapping object's

|? ? ? (key, value) pairs

|? dict(iterable) -> new dictionary initialized as if via:

|? ? ? d = {}

|? ? ? for k, v in iterable:

|? ? ? ? ? d[k] = v

|? dict(**kwargs) -> new dictionary initialized with the name=value pairs

|? ? ? in the keyword argument list.? For example:? dict(one=1, two=2)

'''

#dict()

infos1 = {'a':1,'b':2}

print(type(infos1))

infos2 = dict(infos1)

print(infos2)

#dict(iterable)

infos1 = [('a',1),('b',2)]

print(dict(infos1))

for m,n in infos1:

print('m=%s,n=%s'%(m,n))

#dict(**kwargs)

infos1=dict(one=1, two=2)

print(infos1)

#set也是可以遍歷的。

mySet = {1,2,3,4}

for i in mySet:

print(i)

set的功能

#set.add()新增

set1={0,1,2}

set1.add(6)

print(set1)

#set.remove()移除

set2={1,2,3}

set2.remove(1)

print(set2)

#set 的并,交,差,得到的是一個新的集合set,不改變原來的。

set1={0,1,2}

set2={1,2,3}

print(set1 | set2)

print(set1 & set2)

print(set1 - set2)

print(set1)

print(set2)

#set的其他功能,作為了解即可。

#1、set.update(x)將集合x并入原集合s中,

#x 還可以是列表,元組,字典等,x 可以有多個,用逗號分開

set1={0,1,2}

set2={1,2,3}

set3=[5,6]

set1.update(set2,set3)

print(set1)

#2、set.discard( x )將 x 從集合s中移除,x只能為元素,

#若x不存在,那么什么也不做(do nithing),不會報錯。

set1={0,1,2}

#set1.discard(0)

print('aaaaaaaaaaaaaa')

set1.discard(5)

print(set1)

#3、pop()隨機刪除并返回集合s中某個值

set1={0,1,2}

a=set1.pop()

print(a)

#4、clear() 清空所有的set內的元素

set1={0,1,2}

set1.clear()

print(set1)

#5、判斷 x in s? set同樣支持in操作? 結果是True時,x是元素。

set1={0,1,2}

set2={0}

print(0 in set1)

print(set2 in set1)

#6、union(x) 并集 得到的是一個新的集合set,不改變原來的

set1={0,1,2}

set2={1,2,3}

print(set1.union(set2))

print(set1)

#7、intersection(x) 交集 得到的是一個新的集合set,不改變原來的

set1={0,1,2}

set2={1,2,3}

print(set1.intersection(set2))

print(set1)

#8、difference(x) 差集 得到的是一個新的集合set,不改變原來的

set1={0,1,2}

set2={1,2,3}

print(set1.difference(set2))

print(set1)

#9、s.issubset(x)? 判斷 集合s 是否是 集合x 子集

set1={0,1,2,3}

set2={1,2,3}

print(set2.issubset(set1))

#10、x.issuperset( s ) 判斷 集合s 是否是集合x的子集

set1={0,1,2,3}

set2={1,2,3}

print(set1.issuperset(set2))

字典的其他方法

'''

字典的復制dict.copy(),內容一樣,地址不相同。

判斷內容是否相同:==

判斷地址是否相同:is

查看地址用 id

'''

di1={'name':'年華','age':18,'sex':'男'}

di2=di1.copy()

print(di1)

print(di2)

print(id(di1))

print(id(di2))

print(id(di1)==id(di2))

print(di1==di2)

print(di1 is di2)

print('*'*60)

'''

dict.fromkeys(seq[, val]))

seq表示可以迭代的,eg列表、字符串、元組。vaule默認值為None

'''

di1={'name':'年華','age':18,'sex':'男'}

ls=[1,2,3]

a=di1.fromkeys(ls)

print(a)

b=di1.fromkeys(ls,'年華')

print(b)

str1='jkl'

a=di1.fromkeys(str1)

print(a)

b=di1.fromkeys(str1,'年華')

print(b)

'''

dict.setdefault(key, default=None),

如果有這個鍵,則返回字典里的值。

如果沒有這個鍵,則返回default。

'''

di1={'name':'年華','age':18,'sex':'男'}

a=di1.setdefault('name','哈哈')

print(a)

print(di1)

a=di1.setdefault('hobby','呵呵')

print(a)

print(di1)

'''

dict.update(dict2):把字典dict2中的鍵值對更新到dict

'''

di1={'name':'哈哈'}

di2={'age':20}

di1.update(di2)

print(di1)

print(di2)

'''

字典與列表的對比:

字典特點:1、查找速度快,不會隨著鍵的增加而變慢。

2、需要占用大量的內存,因為字典存的是鍵值對。內存浪費多。

列表的特點:1、查找和插入的時間隨著元素的增加而增加。查找的速度慢。

2、占用的空間小,浪費內存較小。

'''

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容