日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 学习4-集合、序列

發布時間:2023/12/16 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 学习4-集合、序列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

六、集合

集合與字典類似,但是只有鍵沒有值,鍵為不可變類型,即可以哈希
(1)集合的創建

  • 先創建對象,在向里頭添加元素,空集合(Eg:s=set()),同樣不可以添加表
  • basket=set() basket.add('das') basket.add(123) basket.add((231,235,423)) print(basket) #{123, 'das', (231, 235, 423)}
  • 類似字典直接用大括號{},重復元素會自動被過濾
  • basket={'dasda',('das',321),134} print(basket) #{('das', 321), 'dasda', 134}
  • 直接使用工廠函數set(value),把列表和元組轉換成集合,不可以是數字,想要完整的錄入一個字符串,要用[’ ']或者" ",單引號會錄入組成的各個字母
  • basket1=set('dsaasag') print(basket1) #{'s', 'a', 'd', 'g'} basket2=set(('dasd',432)) print(basket2) #{432, 'dasd'} basket3=set(['gsf',64]) print(basket3) #{64, 'gsf'} basket4=set(1231) print(basket4) #TypeError: 'int' object is not iterable

    從列表中去掉相同元素

    lst = [0, 1, 2, 3, 4, 5, 5, 3, 1]temp = [] for item in lst:if item not in temp:temp.append(item)print(temp) # [0, 1, 2, 3, 4, 5]a = set(lst) print(list(a)) # [0, 1, 2, 3, 4, 5]

    集合是無序且唯一的,所以對集合不能創建索引和進行切片操作,也沒有鍵來獲取值,但是可以判斷一個元素是否在集合中
    (2)集合的訪問

  • len看數組的大小
  • basket=set(('fs',321)) print(basket) #{321, 'fs'} print(len(basket)) #2
  • for遍歷集合
  • basket={4532,'dsfda',('dasg',798)} for item in basket: print(item) #dsfda 4532 ('dasg', 798)
  • in & not in看元素是否存在集合中
  • basket={4532,'dsfda',('dasg',798)} print('das' in basket) #False print('das' not in basket) #True print(4532 in basket) #True print(4532 not in basket) #False

    (3)集合的內置

  • set.add
    set.add()向集合中添加元素
  • basket={231,'fsdj'} basket.add((4322,'gdfg')) print(basket) #{'fsdj', (4322, 'gdfg'), 231}
  • set.update
    set.update()向集合里添加新元素或集合,重復的會忽略
  • basket=set([1234,546,'uhy']) print(basket) #{'uhy', 1234, 546} basket.update("gfdhjk") print(basket) #{546, 'h', 'f', 'j', 'k', 1234, 'g', 'uhy', 'd'} basket.update(['gfdhjk']) print(basket)#{546, 'h', 'f', 'j', 'gfdhjk', 'k', 1234, 'g', 'uhy', 'd'}
  • set.remove
    set.remove(item)移除集合中的指定的元素,如果沒有這個元素,會有錯誤
  • basket={"fsdf",563} print(basket) #{563, 'fsdf'} basket.remove(563) print(basket) #{'fsdf'} basket.remove('dsfs') print(basket) #KeyError: 'dsfs'
  • set.discard
    set.discard(value)也是用于移除集合中的指定元素,就算沒有這個元素,也不會報錯
  • basket={32131,'gfdj'} print(basket) #{'gfdj', 32131} basket.discard(32131) print(basket) #{'gfdj'} basket.discard('fhsjk') print(basket) #{'gfdj'}
  • set.pop
    set.pop()隨機移除一個元素
  • basket={'sdada',43} print(bakset) #{43, 'sdada'} basket.pop() print(basket) #{'sdada'}
  • set.intersection
    basket1.intersection(basket2)返回兩個集合的交集
    basket1&bakset2返回兩個集合的交集
    set.intersection_update
    basket1.set.intersection_update(basket2) 在basket1集合上移除不一樣的,剩下一樣的,也就是交集,沒有返回值
  • basket1=set('dsdahtrj') basket2=set('dfhaooif') print(basket1) #{'h', 'a', 't', 'j', 'r', 's', 'd'} print(basket2) #{'h', 'a', 'i', 'f', 'o', 'd'} a=basket1.intersection(basket2) print(a) #{'h', 'a', 'd'} print(basket1&basket2) #{'h', 'a', 'd'} basket1.intersection_update(basket2) print(basket1) #{'h', 'a', 'd'}
  • set.union
    basket1.union(basket2)返回2個集合的并集
    basket1 | basket2返回2個集合的并集
  • basket1=set('dsdahtrj') basket2=set('dfhaooif') print(basket1) #{'h', 'a', 't', 'j', 'r', 's', 'd'} print(basket2) #{'h', 'a', 'i', 'f', 'o', 'd'} print(basket1.union(basket2))#{'t', 'j', 'h', 'd', 's', 'f', 'i', 'o', 'r', 'a'} print(basket1 | basket2)#{'t', 'j', 'h', 'd', 's', 'f', 'i', 'o', 'r', 'a'}
  • set.difference
    basket1.difference(basket2)返回2個集合的差集
    basket1 - basket2返回2個集合的差集
    **basket1.difference_update(basket2)**在basket1集合中移除一樣的,沒有返回值
  • basket1=set('dsdahtrj') basket2=set('dfhaooif') print(basket1) #{'t', 'j', 'h', 'd', 's', 'r', 'a'} print(basket2) #{'h', 'd', 'f', 'i', 'o', 'a'} print(basket1.difference(basket2)) #{'t', 'j', 's', 'r'} print(basket1 - basket2) #{'t', 'j', 's', 'r'} basket1.difference_update(basket2) print(basket1) #{'t', 'j', 's', 'r'}
  • set.symmetric_difference
    basket1.symmetric_difference(basket2)返回2個集合的異或(并集減去交集)
    basket1^basket2返回2個集合的異或
    **basket1.symmetric_difference_update(basket2)**在basket1集合中顯示異或
  • basket1=set('dsdahtrj') basket2=set('dfhaooif') print(basket1) #{'t', 'j', 'h', 'd', 's', 'r', 'a'} print(basket2) #{'h', 'd', 'f', 'i', 'o', 'a'} print(basket1.symmetric_difference(basket2))#{'t', 'i', 'j', 'o', 'r', 's', 'f'} print(basket1^basket2) #{'t', 'i', 'j', 'o', 'r', 's', 'f'} basket1.symmetric_difference_update(basket2) print(basket1) #{'t', 'j', 's', 'f', 'i', 'o', 'r'}
  • set.issubset
    basket1.issubset(basket2)看basket1是否basket2包含,是就返回True,不是就返回False
    basket1<=basket2set.issubset一樣
  • basket1={'dsada',58967} basket2={'dsada'} print(basket1.issubset(basket2)) #False print(basket2.issubset(basket1)) #True print(basket1<=basket2) #False
  • set.issuperset
    basket1.issuperset(basket2)看basket1是不是包含basket2,是就返回True,不是就返回False
    basket1>=basket2和set.issuperset一樣
  • basket1={'dsada',58967} basket2={'dsada'} print(basket1.issuperset(basket2)) #True print(basket2.issuperset(basket1)) #False print(basket1>=basket2) #True
  • set.isdisjoint(set)
    basket1.isdisjoint(basket2)判斷是不是不相交,是就返回True,不是就返回False
  • basket1=set('hfdgjkdgjkh') basket2=set('lkjgsdf') basket3=set('dgj') print(basket1) #{'d', 'g', 'j', 'k', 'h', 'f'} print(basket2) #{'d', 'g', 'k', 'j', 'f', 's', 'l'} print(basket2) #{'d', 'g', 'k', 'j', 'f', 's', 'l'} print(basket1.isdisjoint(basket2)) #False

    (4)集合的轉換

    se = set(range(4)) li = list(se) tu = tuple(se)print(se, type(se)) # {0, 1, 2, 3} <class 'set'> print(li, type(li)) # [0, 1, 2, 3] <class 'list'> print(tu, type(tu)) # (0, 1, 2, 3) <class 'tuple'>

    (5)不可變集合
    frozenset
    frozenset返回一個凍結的集合,不可以被刪除和添加任何元素

    a=frozenset(range(10)) # 生成一個新的不可變集合 print(a) # frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})b=frozenset('lsgogroup') print(b) # frozenset({'g', 's', 'p', 'r', 'u', 'o', 'l'}) print(b) #AttributeError: 'frozenset' object has no attribute 'add'

    六、序列

    序列包括字符串、列表、元組、字典、集合,他們支持一些通用的操作、字典和集合不支持索引、切片、相加、相乘

  • 針對序列的內置函數
    可迭代對象:比如:list,字符串,dict,元組,生成器(生成特殊值的函數)等
    **list()**把可迭代對象轉換成列表
    **tuple()**把可迭代對象轉換成元組
    **str()**把對象轉換成字符串
  • a=[132,'fgd'] print(a,type(a)) #[132, 'fgd'] <class 'list'> a1=tuple(a) print(a1,type(a1)) #(132, 'fgd') <class 'tuple'> a2=str(a) print(a2,type(a2)) #[132, 'fgd'] <class 'str'>b=(123,'gsfhj') print(b,type(b)) #(123, 'gsfhj') <class 'tuple'> b1=list(b) print(b1,type(b1)) #[123, 'gsfhj'] <class 'list'> b2=str(b) print(b2,type(b2)) #(123, 'gsfhj') <class 'str'>c='dsaad' print(c,type(c)) #dsaad <class 'str'> d={'gfs':'fdsh',43:7} print(d,type(d)) #{'gfs': 'fdsh', 43: 7} <class 'dict'> e={'skhjgf',657} print(e,type(e)) #{'skhjgf', 657} <class 'set'>
  • len返回對象的長度或元素個數
  • a=list() print(len(a)) # 0b=('I', ' ', 'L', 'o', 'v', 'e', ' ', 'L', 's', 'g', 'o', 'G', 'r', 'o', 'u', 'p') print(len(b)) # 16c='I Love LsgoGroup' print(len(c)) # 16
  • max返回序列或參數集合中的最大值
  • print(max(1, 2, 3, 4, 5)) # 5 print(max([-8, 99, 3, 7, 83])) # 99 print(max('IloveLsgoGroup')) # v
  • min返回序列或參數集合中的最小值
  • print(min(1, 2, 3, 4, 5)) # 1 print(min([-8, 99, 3, 7, 83])) # -8 print(min('IloveLsgoGroup')) # G
  • sum返回序列與可選參數的總和
  • print(sum([1, 3, 5, 7, 9])) # 25 print(sum([1, 3, 5, 7, 9], 10)) # 35 print(sum((1, 3, 5, 7, 9))) # 25 print(sum((1, 3, 5, 7, 9), 20)) # 45 print(sum('fsfs',1)) #TypeError: unsupported operand type(s) for +: 'int' and 'str'
  • sorted排序
    sorted(’ ‘,key,reverse)’ ‘是可迭代對象,key是主要用來比較的對象
    reverse排序規則True降序False升序(默認)
    lambda是一個模擬函數 后邊的是函數本題中就是返回b["name’]
  • a=(5641,1984,56497,56456) print(sorted(a)) #[1984, 5641, 56456, 56497] print(sorted(a,reverse=True)) #[56497, 56456, 5641, 1984] b=({"age": 20, "name": "a"}, {"age": 25, "name": "b"}, {"age": 10, "name": "c"}) print(sorted(b,key=lambda b:b["name"],reverse=True)) #[{'age': 10, 'name': 'c'}, {'age': 25, 'name': 'b'}, {'age': 20, 'name': 'a'}]
  • reversed反轉,可以反轉元組,字符串,列表,range
  • a={4234,'sgf'} print(a,type(a)) #{4234, 'sgf'} <class 'set'> a1=reversed(a) print(a1,type(a1)) #TypeError: 'set' object is not reversibleb=(321,57,987) print(b,type(b)) #(321, 57, 987) <class 'tuple'> b1=reversed(b) print(b1,type(b1)) #<reversed object at 0x7f95a9758b38> <class 'reversed'>
  • enumrate
    enumrate(數據對象,編號)
  • seasons=['Spring', 'Summer', 'Fall', 'Winter'] a=list(enumerate(seasons)) print(a) #[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]b=list(enumerate(seasons, 1)) print(b) # [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
  • zip
    zip(a,b)將a,b打包成一個元組,返回這些元組組成的對象,這么做好處是可以節約空間,可以用list()來輸出列表,一一對應的
  • a=(312,'fgjf') b=['fjfgh',57] c=zip(a,b) print(c) # print(list(c)) #[(312, 'fjfgh'), ('fgjf', 57)] print(tuple(c)) #() d=(543,'hfgj',675) e=zip(a,d) print(list(e)) #[(312, 543), ('fgjf', 'hfgj')]

    總結

    以上是生活随笔為你收集整理的Python 学习4-集合、序列的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。