溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中有哪些常用的組合數(shù)據(jù)類型

發(fā)布時(shí)間:2020-08-26 17:04:54 來(lái)源:億速云 閱讀:539 作者:Leah 欄目:編程語(yǔ)言

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹Python中有哪些常用的組合數(shù)據(jù)類型,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

python的組合數(shù)據(jù)類型及其內(nèi)置方法說(shuō)明

python中,數(shù)據(jù)結(jié)構(gòu)是通過(guò)某種方式(例如對(duì)元素進(jìn)行編號(hào)),組織在一起數(shù)據(jù)結(jié)構(gòu)的集合。

python常用的組合數(shù)據(jù)類型有:序列類型,集合類型和映射類型。

(1)在序列類型中,又可以分為列表和元組,字符串也屬于序列類型;

(2)在集合類型中,主要有集合類型;

(3)在映射類型中,主要有字典類型,字典是可變序列。

python中一切皆對(duì)象,組合數(shù)據(jù)類型也是對(duì)象,因此python的組合數(shù)據(jù)類型可以嵌套使用,列表中可以嵌套元組和字典,元組中也可以嵌套和字典,當(dāng)然字典中也可以嵌套元組和列表,例如:['hello','world',[1,2,3]]。

元組,列表以及字符串等數(shù)據(jù)類型是"有大小的",也即其長(zhǎng)度可使用內(nèi)置函數(shù)len()測(cè)量。

python對(duì)象可以具有其可以被調(diào)用的特定“方法(函數(shù))”。    

列表的常用內(nèi)置方法

在python中,列表使用[]創(chuàng)建,例如['hello','world','linux','python']。

列表是可變序列,其主要表現(xiàn)為:列表中的元素可以根據(jù)需要擴(kuò)展和移除,而列表的內(nèi)存映射地址不改變。  

列表屬于序列類型,可以在python解釋器中使用dir(list)查看列表的內(nèi)置方法。          

append

#在列表的末尾添加元素
L.append(object) -- append object to end
>>> l1=["hello","world"]
>>> l2=[1,2,3,4]
>>> l1.append("linux")
>>> print(l1)
['hello', 'world', 'linux']
>>> l2.append(5)
>>> print(l2)
[1, 2, 3, 4, 5]

clear

#清除列表中的所有元素
L.clear() -> None -- remove all items from L
>>> l1=["hello","world"]
>>> l2=[1,2,3,4]
>>> l1.clear()
>>> print(l1)
[]
>>> l2.clear()
>>> print(l2)
[]

copy

#淺復(fù)制
L.copy() -> list -- a shallow copy of L
>>> l1=["hello","world","linux"]
>>> id(l1)
140300326525832
>>> l2=l1.copy()
>>> id(l2)
140300326526024
>>> print(l1)
['hello', 'world', 'linux']
>>> print(l2)
['hello', 'world', 'linux']

count

#返回某個(gè)元素在列表中出現(xiàn)的次數(shù)
L.count(value) -> integer -- return number of occurrences of value
>>> l1=[1,2,3,4,2,3,4,1,2]
>>> l1.count(1)
2
>>> l1.count(2)
3
>>> l1.count(4)
2

extend

#把另一個(gè)列表擴(kuò)展進(jìn)本列表中
L.extend(iterable) -- extend list by appending elements from the iterable
>>> l1=["hello","world"]
>>> l2=["linux","python"]
>>> l1.extend(l2)
>>> print(l1)
['hello', 'world', 'linux', 'python']

index

#返回一個(gè)元素第一次出現(xiàn)在列表中的索引值,如果元素不存在報(bào)錯(cuò)
L.index(value, [start, [stop]]) -> integer -- return first index of value. Raises ValueError if the value is not present.
  >>> l1=[1,2,3,4,2,3,4,1,2]
    >>> l1.index(1)
    0
    >>> l1.index(2)
    1
    >>> l1.index(4)
    3
    >>> l1.index(5)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: 5 is not in list

insert

#在這個(gè)索引之前插入一個(gè)元素
L.insert(index, object) -- insert object before index
    >>> l1=['hello', 'world', 'linux', 'python']
    >>> l1.insert(1,"first")
    >>> print(l1)
    ['hello', 'first', 'world', 'linux', 'python']
    >>> l1.insert(1,"second")
    >>> print(l1)
    ['hello', 'second', 'first', 'world', 'linux', 'python']

pop

#移除并返回一個(gè)索引上的元素,如果是一個(gè)空列表或者索引的值超出列表的長(zhǎng)度則報(bào)錯(cuò)
L.pop([index]) -> item -- remove and return item at index (default last).Raises IndexError if list is empty or index is out of range.
    >>> l1=['hello', 'world', 'linux', 'python']
    >>> l1.pop()
    'python'
    >>> l1.pop(1)
    'world'
    >>> l1.pop(3)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: pop index out of range

remove

#移除第一次出現(xiàn)的元素,如果元素不存在則報(bào)錯(cuò)
L.remove(value) -- remove first occurrence of value.
Raises ValueError if the value is not present.
    >>> l1=['hello', 'world', 'linux', 'python']
    >>> l1.remove("hello")
    >>> print(l1)
    ['world', 'linux', 'python']
    >>> l1.remove("linux")
    >>> print(l1)
    ['world', 'python']
    >>> l1.remove("php")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: list.remove(x): x not in list

reverse

#原地反轉(zhuǎn)列表
L.reverse() -- reverse *IN PLACE*
  >>> l1=['hello', 'world', 'linux', 'python']
    >>> id(l1)
    140300326525832
    >>> l1.reverse()####
    >>> print(l1)
    ['python', 'linux', 'world', 'hello']
    >>> id(l1)
    140300326525832

sort

#對(duì)列表進(jìn)行原地排序
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
    >>> l1=[1,3,5,7,2,4,6,8]
    >>> id(l1)
    140300326526024
    >>> l1.sort()
    >>> print(l1)
    [1, 2, 3, 4, 5, 6, 7, 8]
    >>> id(l1)
    140300326526024

元組的常用內(nèi)置方法

元組則使用()創(chuàng)建,例如('hello','world'),元組是不可變序列,其主要表現(xiàn)為元組的元素不可以修改,但是元組的元素的元素可以被修改。

元組屬于序列類型,可以在python解釋器中使用dir(tuple)查看元組的內(nèi)置方法。

count

#返回某個(gè)元素在元組中出現(xiàn)的次數(shù)
T.count(value) -> integer -- return number of occurrences of value
>>> t1=("hello","world",1,2,3,"linux",1,2,3)
>>> t1.count(1)
2
>>> t1.count(3)
2
>>> t1.count("hello")
1

index

#返回元素在元組中出現(xiàn)的第一個(gè)索引的值,元素不存在則報(bào)錯(cuò)
T.index(value, [start, [stop]]) -> integer -- return first index of value.Raises ValueError if the value is not present.
>>> t1=("hello","world",1,2,3,"linux")
>>> t1=("hello","world",1,2,3,"linux",1,2,3)
>>> t1.count("hello")
1
>>> t1.index("linux")
5
>>> t1.index(3)
4

字典的常用內(nèi)置方法

字典屬于映射類型,可以在python解釋器中使用dir(dict)查看字典的內(nèi)置方法

clear

#清除字典中所有的元素
D.clear() -> None.  Remove all items from D.
>>> dic1={"k1":11,"k2":22,"k3":"hello","k4":"world"}
>>> print(dic1)
{'k3': 'hello', 'k4': 'world', 'k2': 22, 'k1': 11}
>>> dic1.clear()
>>> print(dic1)
{}

copy

#淺復(fù)制
D.copy() -> a shallow copy of D
>>> dic1={"k1":11,"k2":22,"k3":"hello","k4":"world"}
>>> id(dic1)
140300455000584
>>> dic2=dic1.copy()
>>> id(dic2)####
140300455000648
>>> print(dic2)
{'k2': 22, 'k4': 'world', 'k3': 'hello', 'k1': 11}

fromkeys(iterable, value=None, /)

#返回一個(gè)以迭代器中的每一個(gè)元素做健,值為None的字典
Returns a new dict with keys from iterable and values equal to value.
>>> dic1={"k1":11,"k2":"hello"}
>>> dic1.fromkeys([22,33,44,55])
{33: None, 44: None, 22: None, 55: None}
>>> print(dic1)
{'k2': 'hello', 'k1': 11}

get

#查詢某個(gè)元素是否在字典中,即使不存在也不會(huì)報(bào)錯(cuò)
D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
>>> dic1={'k3': None, 'k2': 'hello', 'k1': 11, 'k4': 'world'}
>>> dic1.get("k3")
>>> value1=dic1.get("k1")
>>> print(value1)
11
>>> value2=dic1.get("k2")
>>> print(value2)
hello
>>> value3=dic1.get("k5")
>>> print(value3)
None

items

#返回一個(gè)由每個(gè)鍵及對(duì)應(yīng)的值構(gòu)成的元組組成的列表
D.items() -> a set-like object providing a view on D's items
>>> dic1={"k1":11,"k2":22,"k3":"hello","k4":"world"}
>>> dic1.items()
dict_items([('k3', 'hello'), ('k4', 'world'), ('k2', 22), ('k1', 11)])
>>> type(dic1.items())
<class 'dict_items'>

keys

#返回一個(gè)由字典所有的鍵構(gòu)成的列表
D.keys() -> a set-like object providing a view on D's keys
>>> dic1={"k1":11,"k2":22,"k3":"hello","k4":"world"}
>>> dic1.keys()
['k3', 'k2', 'k1', 'k4']

pop

#從字典中移除指定的鍵,返回這個(gè)鍵對(duì)應(yīng)的值,如果鍵不存在則報(bào)錯(cuò)
D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised
>>> dic1={"k1":11,"k2":22}
>>> dic1.pop("k1")
11
>>> dic1.pop("k2")
22

popitem

#從字典中移除一個(gè)鍵值對(duì),并返回一個(gè)由所移除的鍵和值構(gòu)成的元組,字典為空時(shí),會(huì)報(bào)錯(cuò)
D.popitem() -> (k, v), remove and return some (key, value) pair as a 2-tuple; but raise KeyError if D is empty.
>>> dic1={"k1":11,"k2":22}
>>> dic1.popitem()
('k2', 22)
>>> dic1.popitem()
('k1', 11)
>>> dic1.popitem()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'popitem(): dictionary is empty'

setdefault

#參數(shù)只有一個(gè)時(shí),字典會(huì)增加一個(gè)鍵值對(duì),鍵為這個(gè)參數(shù),值默認(rèn)為None;后接兩個(gè)參數(shù)時(shí),第一個(gè)參數(shù)為字典新增的鍵,第二個(gè)參數(shù)為新增的鍵對(duì)應(yīng)的值
D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D>>> dic1={"k1":11,"k2":"hello"}
>>> dic1.setdefault("k3")
>>> print(dic1)
{'k3': None, 'k2': 'hello', 'k1': 11}
>>> dic1.setdefault("k4","world")
'world'
>>> print(dic1)
{'k3': None, 'k2': 'hello', 'k1': 11, 'k4': 'world'}

update

#把一個(gè)字典參數(shù)合并入另一個(gè)字典,當(dāng)兩個(gè)字典的鍵有重復(fù)時(shí),參數(shù)字典的鍵值會(huì)覆蓋原始字典的鍵值
D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
In either case, this is followed by: for k in F:  D[k] = F[k]
>>> dic1={"k1":11,"k2":"hello"}
>>> dic2={"k3":22,"k4":"world"}
>>> dic1.update(dic2)
>>> print(dic1)
{'k3': 22, 'k2': 'hello', 'k1': 11, 'k4': 'world'}
>>> dic1={"k1":11,"k2":"hello"}
>>> dic2={"k1":22,"k4":"world"}
>>> dic1.update(dic2)
>>> print(dic1)
{'k2': 'hello', 'k1': 22, 'k4': 'world'}

values

#返回一個(gè)由字典的所有的值構(gòu)成的列表
D.values() -> an object providing a view on D's values
>>> dic1={"k1":11,"k2":22,"k3":"hello","k4":"world"}
>>> dic1.values()
['hello', 22, 11, 'world']

關(guān)于Python中有哪些常用的組合數(shù)據(jù)類型就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI