python list append tuple_Python之list、tuple、dict、set
參考原文
PS:來看看Python中比較特殊的幾種數據類型list、tuple、dict、set
list
list(列表)是Python內置的一種數據類型,它是一種有序、可變的集合,可以隨時添加和刪除其中的元素。
>>> classmates = ['Li', 'Tom', 'Alice']>>>classmates
['Li', 'Tom', 'Alice']
變量classmates就是一個list。關于list的操作如下:
方法
len():獲取list元素的個數
>>>len(classmates)3
View Code
通過索引訪問
>>>classmates[0]'Li'
>>> classmates[-1]'Alice'
>>> classmates[3]
Traceback (most recent call last):
File"", line 1, in classmates[3]
IndexError: list index out of range
View Code
append:向list末尾追加元素
>>> classmates.append('Adam')>>>classmates
['Li', 'Tom', 'Alice', 'Adam']
View Code
insert:把元素插入到指定的索引
>>> classmates.insert(1,'Jack')>>>classmates
['Li', 'Jack', 'Tom', 'Alice', 'Adam']
View Code
pop():刪除末尾的元素
>>>classmates.pop()'Adam
View Code
pop(i):刪除指定索引的元素
>>> classmates.pop(1)'Jack'
>>>classmates
['Li', 'Tom', 'Alice']
View Code
tuple
tuple是一種有序、不變的集合,也叫元組,一旦初始化就不能修改。與list相比,就沒有append()、insert()這樣的方法。
為什么有了list還要tuple?
因為tuple是不變的,所以代碼更安全,所以如果能用tuple代替list就盡量用tuple吧。
Notes
不變指的是tuple的每個元素,指向永遠不變,指向一個list,就不能改成指向其他對象,但指向的list本身是可以改變的。
>>> t = ('a', 'b', ['A', 'B'])>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>>t
('a', 'b', ['X', 'Y'])
View Code
特殊的tuple元組
#空tuple ()
>>> t =()>>>t
()#一個元素的tuple,必須加','來消除歧義(小括號就可以表示typle又可以表示數學中的小括號)
>>> t = (1,)>>>t
(1,)
View Code
dict
dict全稱dictionary,使用鍵-值(key-value)存儲,具有極快的查找速度。用Python寫一個dict如下:
>>> d ={'Michael': 95, 'Bob': 75, 'Tracy': 85}>>> d['Michael']95
Tips:dict內部存放的順序和key放入的順序是沒有關系的。
對比于list
dict的特點:1.查找和插入的速度極快,不會隨著key的增加而變慢 2.需要占用大量的內存,內存浪費多。
而list恰恰相反:1.查找和插入的時間隨著元素的增加而變慢 2.占用空間小,浪費內存少。
小結
所以,dict是用空間來換取時間的一種方法。dict可以用在需要高速查找的地方,在Python代碼中幾乎無處不在,正確使用dict就變得十分重要,需要牢記的第一條就是dict的key必須是不可變的對象。dict根據key來計算value的存儲位置(哈希算法),在Python中,字符串、整數等是不可以變的,而list是可變的,就不能作為key。
set
set和dict類似,也是一組key的集合,但不存儲value,set可以看成數學意義上的無序和無重復元素的集合。要創建一個set,需要提供一個list作為輸入集合:
>>> s = set([1,2,3])>>>s
{1, 2, 3}
兩個set可以做數學意義上的交集、并集等操作:
>>> s1 = set([1,2,3])>>> s2 = set([2,3,4])>>> s1 &s2
{2, 3}>>> s1 |s2
{1, 2, 3, 4}
View Code
總結
以上是生活随笔為你收集整理的python list append tuple_Python之list、tuple、dict、set的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python socket 发送十六进制
- 下一篇: 分区和分片的区别_MySQL分区与分片的