數據類型

numbers

運算

  • "+",加,返回操作數中精度最高的類型

  • "-",減,返回操作數中精度最高的類型

  • "*",乘,返回操作數中精度最高的類型

  • "/" ,除,返回float,保留小數,20/4=5.0

  • "//",除,返回int,不保留小數,20//4=5

  • "",乘方,返回操作數中精度最高的類型,2 7=128

  • "%",取餘,返回操作數中精度最高的類型,4%1.5=1.0
  • "&",按位與,5&3=1(101&011=001
  • "^",按位異或,5 ^ 3=6(101^011=110
  • "|",按位或,5|3=7(101|011=111
  • " ~ ",按位反轉,~3=-4
  • ">>",右移,5>>1=2### numbers

運算

  • "+",加,返回操作數中精度最高的類型

  • "-",減,返回操作數中精度最高的類型

  • "*",乘,返回操作數中精度最高的類型

  • "/" ,除,返回float,保留小數,20/4=5.0

  • "//",除,返回int,不保留小數,20//4=5

  • "",乘方,返回操作數中精度最高的類型,2 7=128

  • "%",取餘,返回操作數中精度最高的類型,4%1.5=1.0
  • "&",按位與,5&3=1(101&011=001
  • "^",按位異或,5 ^ 3=6(101^011=110
  • "|",按位或,5|3=7(101|011=111
  • " ~ ",按位反轉,~3=-4
  • ">>",右移,5>>1=2
  • "<<",左移,5<<2=20

其它支持的一些複雜數據及運算

集合

注意: 集合是指包含一組元素的數據結構(區別於set,在此僅指抽象的概念),我們已經介紹的包括:

  1. 有序集合:listtuplestrunicode
  2. 無序集合:set
  3. 無序集合並且具有 key-value 對:dict

常見功能:索引、分片、嵌套、遍歷、構造表達式(沒找到中文解釋,暫時這樣稱呼)

str

字符串,形式爲s="apple"或s='apple'

""" xxx """ 或 ''' xxx ''' 都可表示註釋

n*str,表示str重複n次(n大於0)

索引

str[2],表示str中索引爲2的字符

str[-1],表示str中倒數第一個字符,無-0索引

str[i],如果i超出索引,會拋異常

切片

str[0:2],表示str按照[0,2)截取,即截取索引爲0和1的字符串

str[:3],表示str按照[0,3)截取

str[3:],表示str按照[3,length-1)截取,所以str[:i]+str[i:]和str是等價的

str[i:],如果i超出索引,會返回空串''

str[3:i],如果i超出索引,返回的結果和str[3:]一樣

str在Python中不可更改

list

數組,形式爲list=[3,0,34,2,10]

索引

list[0],索引爲0的元素,返回3

切片

list[:],所有元素,返回[3,0,34,2,10]

list[1:],索引1到最後的元素,返回[0,34,2,10]

list[:2],索引0到1的元素,返回[3,0]

list[-2:],末尾2個元素,返回[2,10]

list[::2],前兩個參數爲空,第三個不爲空,第三個爲步長,表示從[0,len-1)中以2爲步長取出元素,返回[3,34,10]

數組內容可更改,list[2:]=[],結果list=[3,0];list.append(2**3),結果list=[3,0,34,2,10,8]

嵌套

數組可嵌套,即可爲多層數組

元素增刪

list.pop(),刪除末尾元素。

list.pop(3),刪除索引爲3的元素。

list.remove(3),刪除值爲3的首個元素。。

del list[3],刪除索引爲3的元素。

list.append(10),末尾添加元素10。

list.insert(2,10),在索引爲2的元素前插入10,即10放在索引爲2的位置。

list.extend([12,45]),拓展數組,在末尾添加[12,45]。

元素類型轉換

enumerate() 函數自動把每個元素變成 (index, element) 這樣的tuple

for index, name in enumerate(L):
        print index, '-', name

數組解析提供了一些簡潔的構造方法:

squares = [x**2 for x in range(10)]
    
# squares=[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    
squares = [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
    
# squares=[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

數組可嵌套方法和複雜的表達式,即構造表達式:

list = [str(round(pi, i)) for i in range(1, 6)] 
# list=['3.1', '3.14', '3.142', '3.1416', '3.14159']

tuple

元組,形式:t=(34,1,54)

元組不可修改,可嵌套

元組定義時可打包元素: t=12,'cool','beauty'

相反,元素也可打包到元組: 12,'cool','beauty'=t

單個元素的元組,定義時若不加括號,需加一個逗號,輸出結果時括號內末尾含有一個逗號

singleton = 'hello',  #singleton變爲('hello',)

索引、切片

和list相同

set

集合,形式爲

basket = {'apple', 'orange', 'pear', 'banana'}

無序,元素不重複

數學運算

  • 並集,set1|set2
  • 差集,set1-set2
  • 交集,set1&set2
  • 對稱差,取非公有的所有元素,set1^set2

關係運算

  • 等於,set1**set2
  • 不等於,set1!=set2
  • 屬於,set1 in set2
  • 不屬於,set1 not in set2

與list一樣,set支持構造表達式

a = {x for x in 'abracadabra' if x not in 'abc'}  #結果a={'r','d'}

dictionary

字典,鍵值對形式元素,通過鍵來查找值

tel = {'jack': 4098, 'sape': 4139}

字符串和數字可作爲鍵

添加元素:

tel['guido'] = 4127

檢驗一個key是否在一個字典中:

'guido' in tel # 得到true

得到所有的鍵:

# 得到['jack','sape']
list(tel.keys())

得到所有的值:

# 得到[4098,4139]
list(tel.values())

得到所有的元素:

tel.items()

keys()、values()和items(),都可將結果裝進一個list中

dict()可將一個鍵值對形式的序列轉化成字典

dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]) #得到{'sape': 4139, 'jack': 4098, 'guido': 4127}

字典支持內嵌表達式:

{x: x**2 for x in (2, 4, 6)}  #得到{2: 4, 4: 16, 6: 36}

字典遍歷:

knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k, v in knights.items():
    print(k, v)

range

range(10),生成0到10(索引)的值,即0,1,2,3,4,5,6,7,8,9

range(2,5),生成2到5(索引)的值,即2,3,4

range(0,10,3),生成0到10(索引)的值,步長爲3,即0,3,6,9

range是一個object,非list

list(range(3)),根據range(3)生成一個list數組,得[0,1,2]

  • "<<",左移,5<<2=20

其它支持的一些複雜數據及運算

集合

注意: 集合是指包含一組元素的數據結構(區別於set,在此僅指抽象的概念),我們已經介紹的包括:

  1. 有序集合:listtuplestrunicode
  2. 無序集合:set
  3. 無序集合並且具有 key-value 對:dict

常見功能:索引、分片、嵌套、遍歷、構造表達式(沒找到中文解釋,暫時這樣稱呼)

str

字符串,形式爲s="apple"或s='apple'

""" xxx """ 或 ''' xxx ''' 都可表示註釋

n*str,表示str重複n次(n大於0)

索引

str[2],表示str中索引爲2的字符

str[-1],表示str中倒數第一個字符,無-0索引

str[i],如果i超出索引,會拋異常

切片

str[0:2],表示str按照[0,2)截取,即截取索引爲0和1的字符串

str[:3],表示str按照[0,3)截取

str[3:],表示str按照[3,length-1)截取,所以str[:i]+str[i:]和str是等價的

str[i:],如果i超出索引,會返回空串''

str[3:i],如果i超出索引,返回的結果和str[3:]一樣

str在Python中不可更改

list

數組,形式爲list=[3,0,34,2,10]

索引

list[0],索引爲0的元素,返回3

切片

list[:],所有元素,返回[3,0,34,2,10]

list[1:],索引1到最後的元素,返回[0,34,2,10]

list[:2],索引0到1的元素,返回[3,0]

list[-2:],末尾2個元素,返回[2,10]

list[::2],前兩個參數爲空,第三個不爲空,第三個爲步長,表示從[0,len-1)中以2爲步長取出元素,返回[3,34,10]

數組內容可更改,list[2:]=[],結果list=[3,0];list.append(2**3),結果list=[3,0,34,2,10,8]

嵌套

數組可嵌套,即可爲多層數組

元素增刪

list.pop(),刪除末尾元素。

list.pop(3),刪除索引爲3的元素。

list.remove(3),刪除值爲3的首個元素。。

del list[3],刪除索引爲3的元素。

list.append(10),末尾添加元素10。

list.insert(2,10),在索引爲2的元素前插入10,即10放在索引爲2的位置。

list.extend([12,45]),拓展數組,在末尾添加[12,45]。

元素類型轉換

enumerate() 函數自動把每個元素變成 (index, element) 這樣的tuple

for index, name in enumerate(L):
        print index, '-', name

數組解析提供了一些簡潔的構造方法:

squares = [x**2 for x in range(10)]
    
# squares=[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    
squares = [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
    
# squares=[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

數組可嵌套方法和複雜的表達式,即構造表達式:

list = [str(round(pi, i)) for i in range(1, 6)] 
# list=['3.1', '3.14', '3.142', '3.1416', '3.14159']

tuple

元組,形式:t=(34,1,54)

元組不可修改,可嵌套

元組定義時可打包元素: t=12,'cool','beauty'

相反,元素也可打包到元組: 12,'cool','beauty'=t

單個元素的元組,定義時若不加括號,需加一個逗號,輸出結果時括號內末尾含有一個逗號

singleton = 'hello',  #singleton變爲('hello',)

索引、切片

和list相同

set

集合,形式爲

basket = {'apple', 'orange', 'pear', 'banana'}

無序,元素不重複

數學運算

  • 並集,set1|set2
  • 差集,set1-set2
  • 交集,set1&set2
  • 對稱差,取非公有的所有元素,set1^set2

關係運算

  • 等於,set1**set2
  • 不等於,set1!=set2
  • 屬於,set1 in set2
  • 不屬於,set1 not in set2

與list一樣,set支持構造表達式

a = {x for x in 'abracadabra' if x not in 'abc'}  #結果a={'r','d'}

dictionary

字典,鍵值對形式元素,通過鍵來查找值

tel = {'jack': 4098, 'sape': 4139}

字符串和數字可作爲鍵

添加元素:

tel['guido'] = 4127

檢驗一個key是否在一個字典中:

'guido' in tel # 得到true

得到所有的鍵:

# 得到['jack','sape']
list(tel.keys())

得到所有的值:

# 得到[4098,4139]
list(tel.values())

得到所有的元素:

tel.items()

keys()、values()和items(),都可將結果裝進一個list中

dict()可將一個鍵值對形式的序列轉化成字典

dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]) #得到{'sape': 4139, 'jack': 4098, 'guido': 4127}

字典支持內嵌表達式:

{x: x**2 for x in (2, 4, 6)}  #得到{2: 4, 4: 16, 6: 36}

字典遍歷:

knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k, v in knights.items():
    print(k, v)

range

range(10),生成0到10(索引)的值,即0,1,2,3,4,5,6,7,8,9

range(2,5),生成2到5(索引)的值,即2,3,4

range(0,10,3),生成0到10(索引)的值,步長爲3,即0,3,6,9

range是一個object,非list

list(range(3)),根據range(3)生成一個list數組,得[0,1,2]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章