python(set、dict)

來源:互聯網
上載者:User

標籤:key   format   另一個   int   預設   for   nio   bytearray   from   

一、集合

它的元素是唯一的,並無序的。

1、集合定義

s = set()

s = {1, 2, 3}

2、集合的方法

update版本的集合運算是在原集合上進行修改,傳回值為None。

  • add()表示增加一個元素到集合。當添加一個已經存在的元素時,不會拋出異常。可hash的可以作為集合的元素,不可hash(list,set,bytearray dict)的不可以作為集合的元素。
  • update()表示增加一個可迭代對象。
  • remove()表示從集合中刪除一個存在的元素,否則拋出一個KeyError異常。
  • discard()表示從集合中刪除一個元素,當元素不存在時不拋出異常。
  • pop()表示從集合中隨機返回一個元素,並從集合中刪除此元素。當刪除一個空集合時,拋出一個KeyError異常。
  • clear()表示清空所有元素。
  • difference()表示不在另一個集合的所有元素,返回一個新集合。
  • intersection()表示兩個集合的交集,返回一個新集合。
  • union()表示兩個集合的並集,返回一個新集合。
  • symmetric_difference()表示返回兩個集合不相交的元素,返回一個新集合。
  • difference_update()表示在原集合修改,只保留第一個集合不相交的元素。
  • intersection_update()表示在原集合修改,保留兩個集合的相同元素。
  • issuperset()表示是否為超集。
  • issubset()表示是否為子集。
  • isdisjoint()表示兩個集體不相交。

二、字典

字典是一個索引值對結構。它的Key必須是可hash的值並且是唯一的,value可以是任意的值。

1.字典定義

dt = dict()

dt = {}

2.下標操作

dt = {‘a‘:2,‘b‘:3}

dt[‘c‘]=4

3.字典的方法

  • update()表示增加元素,如果增加的key相同是就修改原來key的值。它的參數可以是以下幾種情況:字典、由二元組構成的可迭代對象、關鍵字參數。
dt = {‘a‘:2,‘b‘:3}dt[‘c‘] = 4dt.update([(‘g‘,3),(‘h‘,2)])dt.update({‘f‘:3,‘e‘:2})dt.update(u=22)print(dt)#結果:{‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2, ‘u‘: 22}
  • pop()表示從字典中刪除指定的key,如果key不存在就拋出keyError異常,但可以指定預設值時則不拋出異常。
dt = {‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2, ‘u‘: 22}d = dt.pop(‘gg‘,-2)print(d)print(dt)#d結果:-2#dt結果:{‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2, ‘u‘: 22}
  • popitem()表示從字典中隨機刪除一個key,並返回一個索引值對的元組。如果刪除一個空字典時拋出一個KeyError異常。
dt = {‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2, ‘u‘: 22}d = dt.popitem()print(d)print(dt)#d結果:(‘u‘, 22)#dt結果:{‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2}
  • clear()表示清空字典所有索引值對。
  • get()表示訪問指定鍵的值,並可以給預設值。
  • setdefault()表示可以為某個key指定預設值。

三、字典的應用

  • 字典可能通過keys()方法返回所有keys,也可以通過values()方法返回所有的值。
  • 用len()方法統計字典的長度。

1、如何遍曆一個字典?

dt = {‘a‘:1,‘b‘:2,‘c‘:3}for k in dt.keys():    print(‘{}=>{}‘.format(k,dt[k]),end=‘ ‘)#結果:a=>1 b=>2 c=>3 
dt = {‘a‘:1,‘b‘:2,‘c‘:3}for k,v in dt.items():    print(‘{}=>{}‘.format(k,v),end=‘ ‘)
#結果:a=>1 b=>2 c=>3

2、enumerate用法

enumerate()是python的內建函數,並返回的是一個enumerate對象。對於一個可迭代的(iterable)/可遍曆的對象(如列表、字串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值。

lt = [1, 2, 3, 4, 5, 6]for k,v in enumerate(lt):    print(‘{}=>{}‘.format(k,v),end=‘ ‘)#結果:0=>1 1=>2 2=>3 3=>4 4=>5 5=>6 

enumerate還可以接收第二個參數,用於指定索引起始值。

lt = [1, 2, 3, 4, 5, 6]for k,v in enumerate(lt,1):    print(‘{}=>{}‘.format(k,v),end=‘ ‘)#結果:1=>1 2=>2 3=>3 4=>4 5=>5 6=>6 

3、OrderedDict的用法

collections模組裡有一個OrderedDict,它可以記住字典中插入元素的先後順序。

from collections import OrderedDictot = OrderedDict()ot[‘b‘]=2ot[‘a‘]=1ot[‘e‘]=4ot[‘1‘]=1ot[‘c‘]=3ot[‘2‘]=2for k,v in ot.items():    print(‘{}=>{}‘.format(k,v),end=‘ ‘)
lt = {‘a‘, ‘b‘, ‘c‘, ‘d‘}print(dict.fromkeys(lt,True))#結果:{‘a‘: True, ‘b‘: True, ‘d‘: True, ‘c‘: True}

python(set、dict)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.