python 數據類型 datatype
-
列表list
-
元組tuple
-
集合set
-
字典dictionary
-
字符串string
一、列表list
list :python的一種數據類型。是可變的,有序的對象。可以刪除和增加元素。
1 列表常用的幾種方法
list.append(x)
list.extend(iterable)
>>> ls=[1,2,'a',3] >>> ls.append('b') >>> ls [1, 2, 'a', 3, 'b'] >>> t=(3,7) >>> ls.extend(t) >>> ls [1, 2, 'a', 3, 'b', 3, 7] >>>
list.remove(x) 從列表中刪除x 元素
list.pop(i) 返回刪除的元素的值,i為索引號 ,如果不指定參數,默認從列表最后開始刪除元素
list.insert(i,x) 指定在某個索引號插入一個元素x
list.count(x) 計算x 元素在列表中出現的次數
list.index(x) 返回x 元素在列表中出現的索引號,如果列表中有多個x, 返回第一個
list.copy() 復制這個列表,會產生新的對象
>>> a=ls.copy() >>> a [2, 'a', 3, 7, 3] >>> id(a) 54370632 >>> a.ppend('s') Traceback (most recent call last): File "<pyshell#22>", line 1, in <module> a.ppend('s') AttributeError: 'list' object has no attribute 'ppend' >>> a.append('s') >>> a [2, 'a', 3, 7, 3, 's'] >>> ls [2, 'a', 3, 7, 3] >>>
list.sort(key=None,reverse=False) 對列表進行排序 如果列表中有多個數據類型,直接調用sort() 會報錯
list.reverse() 反轉列表
2.操作
- 切片
- 索引
- 取長度len()
3.將列表當做stack 使用
>>> stack=[4,5,6] >>> stack.append('a') >>> stack.append('b') >>> stack [4, 5, 6, 'a', 'b'] >>> stack.pop() 'b' >>> stack.pop() 'a' >>>
4.將列表當做隊列queue使用
>>> queue=[4,5,6] >>> queue.append(7) >>> queue.append('u') >>> queue [4, 5, 6, 7, 'u'] >>> queue.pop(0) 4 >>> queue.pop(0) 5 >>> queue [6, 7, 'u'] >>>
列表解析式list comprehension
>>> ls=[i for i in range(6)] >>> ls [0, 1, 2, 3, 4, 5]
del statement
del 語句可用來刪除列表中某個元素,與pop() 返回一個value 不同,pop 可用來刪除slice ,
del 也可以用來刪除整個變量,當你再次引用這個名字,會引發 NameError
for example
>>> ls=[3.5,'df',478,'dfd'] >>> del ls[0] >>> ls ['df', 478, 'dfd'] >>> del ls[0:2] >>> del SyntaxError: invalid syntax >>> ls ['dfd'] >>> del ls >>> ls Traceback (most recent call last): File "<pyshell#62>", line 1, in <module> ls NameError: name 'ls' is not defined >>>
二、tuple and sequence
字符串,列表,都是序列數據類型,元組也是,都可以進行切片,索引
元組是不可變的對象
當定義一個元組,只有一個元素,要使用逗號commas,定義空元組時要用()
>>> t=1,2,3 >>> type(t) <class 'tuple'> >>> t[0] 1 >>> t[0]='asd' Traceback (most recent call last): File "<pyshell#66>", line 1, in <module> t[0]='asd' TypeError: 'tuple' object does not support item assignment >>> #but they can contain mutable object >>> v=([1,2,3],[4,53]) >>> v[0].append('a') >>> v ([1, 2, 3, 'a'], [4, 53]) >>>
>>> t (1, 2, 3) >>> x,y,z=t >>> x 1 >>> y 2 >>> z 3 >>> v2=(3,) >>> v2=() >>> type(v2) <class 'tuple'> >>>
三、集合set
A set is an unordered collection with no duplicate elements.
set 是一種無序的集合,集合里的元素不能重復
集合的特點:
- 互異性
- 無序性 :沒有索引
- 確定性
在python 中,列表,字典不可放入到集合中
創建集合:創建空集合不能用{} ,要用set() ,{}會創建一個空字典
#創建集合
set1=set() #創建空集合
set1={'a','b','c',(1,2)}
定義不可變集合:
f_set_test=frozenset(set_test)
>>> f_set_test
frozenset({'l', 'e', 'h', 'o'})
集合關系運算
set2={1,2,3,4,5,6,7,8}
set3={3,4,5,6,7,8,9,10} set2 & set3 print(set2 & set3) print(set2 | set3) print(set2 - set3)
in
not in
^ 對稱差集
集合方法
向集合添加元素:
View Code
從集合刪除元素:
View Code
remove方法如果刪除的元素在集合里沒有會報錯,而discard 不會,返回None。pop()方法,括號里不能有參數,但是是隨機刪除里面的值。
difference 求差集
union 求並集
intersection求交集
isdisjoint 判斷有無共同集合 ,返回布爾值
issubset 判斷是不是它的子集 返回布爾值
issuperset判斷是不是包含它 返回布爾值
View Code
清除集合
clear 方法
set1.clear()
四、dict 字典(無序)
字典是按鍵-值的關系,一個鍵對應一個值,鍵必須是不可變的數據類型。
初始化定義字典:

dic={}
常用操作
- 增加一個key-value D[key]=value
- 判斷一個key在不在這個字典里 in 關鍵字
- 根據key取值 dic[key]
- 更新字典 update D.update(D2)
- 刪除字典的key pop(key)
- 遍歷字典 for loop
- 得到所有value D.values()
- 得到所有key D.keys()
- 得到所有key-value D.items()
>>> d={1:'a',2:'b',3:'c'}
>>> d.items()
dict_items([(1, 'a'), (2, 'b'), (3, 'c')])
>>> a=d.items()
>>> type(a)
<class 'dict_items'>
>>> list(a)
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> b=list(a)
>>> b
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> type(b[0])
<class 'tuple'>
>>> d.keys()
dict_keys([1, 2, 3])
>>> c=list(d.keys())
>>> c
[1, 2, 3]
>>> for i in c:
print(i)
1
2
3
>>> d.values()
dict_values(['a', 'b', 'c'])
>>> for key,value in d.items()
SyntaxError: invalid syntax
>>> for key,value in d.items():
print(key,value)
把數據放入dict的方法,除了初始化時指定外,還可以通過key放入:

如果key不存在,就會報錯

可以用in 來判斷,或者get方法

get方法
如果不存在會返回NOne,注意:返回None的時候Python的交互式命令行不顯示結果。不能通過get來改變字典的value,這個方法只能是獲得值
要刪除一個key,用pop(key)方法,對應的value也會從dict中刪除

和list比較,dict有以下幾個特點:
- 查找和插入的速度極快,不會隨着key的增加而變慢;
- 需要占用大量的內存,內存浪費多。
而list相反:
- 查找和插入的時間隨着元素的增加而增加;
- 占用空間小,浪費內存很少。
所以,dict是用空間來換取時間的一種方法
