python內建資料結構

來源:互聯網
上載者:User

標籤:ble   pen   計數器   地址   res   with   tar   資料   pop   

Python內建資料結構

一、數值型

1.資料類型分類:

int:整數

python3的int就是長整型,且沒有大小限制,受限於記憶體地區的大小
int(x) 返回一個整數

float:浮點數

有整數部分和小數部分組成。支援十進位和科學計數法表示。只有雙精確度型。
float(x) 返回一個浮點數

complex:複數

有實數和虛數部分組成,實數和虛數部分都是浮點數,3+4.2J
complex(x)、complex(x,y) 返回一個複數

bool:布爾

int的子類,僅有2個執行個體True、False對應1和0,可以和整數直接運算
bool(x) 返回布爾值,bool值判斷邏輯一如前文所述,如:
bool(‘‘) --> False
bool(0) --> False

2.數文書處理函數:

(1)int()、floor()、ceil()、round()、// 區別:

int():

builtin內建函數
官方文檔描述:
class int(x=0)
class int(x, base=10)
Return an integer object constructed from a number or string x, or return 0 if no arguments are given. If x is a number, return x.int(). For floating point numbers, this truncates towards zero.

If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in radix base. Optionally, the literal can be preceded by + or - (with no space in between) and surrounded by whitespace. A base-n literal consists of the digits 0 to n-1, with a to z (or A to Z) having values 10 to 35. The default base is 10. The allowed values are 0 and 2–36. Base-2, -8, and -16 literals can be optionally prefixed with 0b/0B, 0o/0O, or 0x/0X, as with integer literals in code. Base 0 means to interpret exactly as a code literal, so that the actual base is 2, 8, 10, or 16, and so that int(‘010‘, 0) is not legal, while int(‘010‘) is, as well as int(‘010‘, 8).

對於浮點數,截斷小數至零
即取整數部分

floor():

math模板
向下取整

ceil():

math模板
向上取整

round():

四捨六入五取偶

//:

整除並floor()
floored quotient of x and y

(2)數文書處理函數_2

min()min(iterable, [, key, default])min(arg1, arg2, args[, key])max()max(iterable, [, key, default])max(arg1, arg2, args[, key])pow(x,y)

功能與x**y相同

math.sqrt()

開方

bin()

傳回值為字串

oct()

傳回值為字串

hex()

傳回值為字串

math.pi

math.e

(3)類型判斷

type(obj)

傳回型別而不是字串

isinstance(obj, class_or_tuple)

返回布爾值

二、序列對象

資料類型分類:

1.str:字串

詳見:下章
2.list:列表

列表內元素有順序,可以使用索引
線性資料結構
列表是可變的

初始化
例:

lst=list()lst=[]lst=[1,2,‘a‘,[‘i‘,‘j‘]]lst=[range(5)]

不能一開始就定義大小,對比java

列表list、鏈表、queue、stack的差異

list線性儲存,查詢效率高O(1),插入、刪除效率低O(n)
鏈表散落在記憶體中,查詢效率低O(n),插入、刪除效率高O(1)
queue先進先出FIFO
棧後進先出LIFO

清單索引訪問

正索引:從左至右,從0開始,為列表中每一個元素編號
負索引:從右至左,從-1開始

列表查詢

index(value,[start,[stop]])
返回第一個匹配項的索引
只能從左向右遍曆
匹配不到返回ValueError異常
時間複雜度O(n),因需遍曆列表

count(value)

返回列表中匹配value的次數
時間複雜度O(n),因需遍曆列表

len()

時間複雜度O(1)
計數器在每次向list中插入、刪除時執行計數
因此調用len()時只打出計數器數值,不執行遍曆操作

列表增加、插入元素

append(object) -> None

在尾部追加,返回None
修改原有對象,不產生新對象
時間複雜度O(1)

insert(index, object) -> None

在指定索引插入元素,返回None
修改原有對象,不產生新對象
時間複雜度O(n),因為插入後可能會發生後續元素在記憶體中進行依次後移操作

若index超界不報錯:
超越上界,尾部追加
超越下界,頭部追加

extend(iteratable) -> None

將可迭代對象的元素追加進來,返回None
修改原有對象,不產生新對象

  • -> list

串連操作,將兩個列表串連起來
產生新的對象,原列表不變
本質上調用的是add()方法

  • -> list

重複操作,將本列表元素重複n次,返回新的列表

注意:

x=[[1,2,3]]y=x*3y[0][1]=200y

結果為:
[[1, 200, 3], [1, 200, 3], [1, 200, 3]]

y = [1]*5y[0] = 6y[1] = 7print(y)

結果為:
[6, 7, 1, 1, 1]

可暫時理解為:
*複製,對於複雜物件,複製的是引用,並非資料,複製的三個元素實際指向的是同一個記憶體位址
簡單對象不影響
列表刪除元素

remove(value) -> None

從左至右尋找第一個匹配value的值,移除該元素,返回None
修改原有對象,不產生新對象
時間複雜度O(n),因為插入後可能會發生後續元素在記憶體中進行依次後移操作(列表在記憶體中連續順序儲存)

pop([index]) -> item

不指定索引index,就從列表尾部彈出一個元素
指定索引index,就從索引處彈出一個元素,索引超界拋出IndexError錯誤
時間複雜度:
不指定索引為O(1)
指定索引為O(n),因為插入後可能會發生後續元素在記憶體中進行依次前移操作(列表在記憶體中連續順序儲存)

clear() -> None

清除列表所有元素,剩下一個空列表

列表其它操作

reverse() -> None

將列表元素反轉,返回None
修改原有對象,不產生新對象

sort(key=None, reverse=False) -> None

對列表元素進行排序,預設升序
修改原有對象,不產生新對象
reverse為True,反轉,降序
key一個函數,指定key如何排序

in

3.tuple:元組

詳見:下章

三、索引值對

資料類型分類:

set:集合

詳見:下章

dict:字典

詳見:下章

python內建資料結構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.