python里面有幾種常用的容器用來存放數據
1.list 列表,在python中沒有數據類型,所以可以在列表中存放各種類型的數據,比如把Java里面的整型和字符串放在一個容器里面如下所示
1 list = ['熊貓', '老虎', 123, 123.000,'abc'] 2 list 3 ['熊貓', '老虎', 123, 123.0, 'abc']
向列表添加數據
1)append()
1 list.append('456') 2 list 3 ['熊貓', '老虎', 123, 123.0, 'abc', '456']
2)insert(index,Object)向指定位置添加
1 list.insert(2,'000') 2 list 3 ['熊貓', '老虎', '000', 123, 123.0, 'abc', '456']
3)extend()
1 list.extend('柿子') 2 list 3 ['熊貓', '老虎', '000', 123, 123.0, 'abc', '456', '柿', '子'] 4 list.extend(['企鵝', '胖虎']) 5 list 6 ['熊貓', '老虎', '000', 123, 123.0, 'abc', '456', '柿', '子', '企鵝', '胖虎']
用extend()方法時添加一個字符串他會將這個字符串拆分成單個字符分別添加進去,添加一個列表相當於把兩個列表拼接起來
刪除列表的數據
1)remove()
1 list 2 ['熊貓', '老虎', '000', 123, 123.0, 'abc', '456', '柿', '子', '企鵝', '胖虎'] 3 list.remove('000') 4 list 5 ['熊貓', '老虎', 123, 123.0, 'abc', '456', '柿', '子', '企鵝', '胖虎']
2)del()刪除指定數據
1 list 2 ['熊貓', '老虎', 123, 123.0, 'abc', '456', '柿', '子', '企鵝', '胖虎'] 3 del list[1] 4 list 5 ['熊貓', 123, 123.0, 'abc', '456', '柿', '子', '企鵝', '胖虎']
也可以刪除這個列表del list
3)pop()移除最后的元素並返回
1 list 2 ['熊貓', 123, 123.0, 'abc', '456', '柿', '子', '企鵝', '胖虎'] 3 list.pop() 4 '胖虎' 5 list 6 ['熊貓', 123, 123.0, 'abc', '456', '柿', '子', '企鵝']
列表的訪問直接根據索引進行訪問即可,比如訪問第一個元素則是list[0],但對於列表里面包含一個列表的,加入訪問里面列表的元素則需要通過外面的列表索引層層訪問比如
1 list 2 ['熊貓', ['ok', 'good'], 123, 123.0, 'abc', '456', '柿', '子', '企鵝'] 3 list[1][0] 4 'ok'
列表的切片,可以將列表進行切片取出這個列表的一部分
1 list 2 ['熊貓', ['ok', 'good'], 123, 123.0, 'abc', '456', '柿', '子', '企鵝'] 3 list[1:3] 4 [['ok', 'good'], 123] 5 list[2:3] 6 [123] 7 list[2:5] 8 [123, 123.0, 'abc']
可以看出list[index1:index2] ,取出的元素大於等於index1小於index2
2.元組可以看成是一個帶了枷鎖的列表,他不能被改變
1 #定義元組 2 #第一種方式 3 tuple=1,2,'abc' 4 type(tuple) 5 <class 'tuple'> 6 #第二種方式 7 b=(1,2,3,'abc') 8 type(b) 9 <class 'tuple'> 10 b 11 (1, 2, 3, 'abc') 12 tuple 13 (1, 2, 'abc')
可以看出小括號不能作為元組的標志,因為第一種方式定義的時候就沒有加小括號但類型還是元組類型的,所以說小括號不能作為元組的標志,元組也可以進行切片拼接
1 tuple 2 (1, 2, 'abc') 3 tuple[0:1]+('哈哈','456')+tuple[1:] 4 (1, '哈哈', '456', 2, 'abc') 5 tuple 6 (1, 2, 'abc')
3.集合相當於Java里面的set,python里面的集合不能有重復的元素
1 set ={1,'haolou','haha'} 2 type(set) 3 <class 'set'>
可以通過集合的工廠函數set()將列表變成一個集合,這樣就可以去除列表里面的重復元素了,然后再通過list()轉成列表
1 num = [1,1,2,2,3,3,4,4,4] 2 num 3 [1, 1, 2, 2, 3, 3, 4, 4, 4] 4 set(num) 5 {1, 2, 3, 4} 6 list(set(num)) 7 [1, 2, 3, 4]
向集合里添加元素
1 set= {'王羲之', '演員', '導演','專家'} 2 set 3 {'專家', '導演', '王羲之', '演員'} 4 set.add('科學家') 5 set 6 {'專家', '導演', '科學家', '王羲之', '演員'}
刪除集合中的元素
1 set.remove('專家') 2 set 3 {'導演', '科學家', '王羲之', '演員'}
4.字典
python里面的字典相當於Java里面的Map具有映射關系
1 #三種創建字典的方式 2 dic = {'馬雲':'Alibaba', '馬化騰':'Tecent','李彥宏':'Baidu'} 3 dic 4 {'馬化騰': 'Tecent', '馬雲': 'Alibaba', '李彥宏': 'Baidu'} 5 dic2 =dict(馬化騰='QQ', 馬雲='支付寶', 李彥宏='百度') 6 dic2 7 {'馬化騰': 'QQ', '馬雲': '支付寶', '李彥宏': '百度'} 8 dic3= dict(((1,'hello'),(2,'icq'),(3,'fu'),(4,'kolo'))) 9 dic3 10 {1: 'hello', 2: 'icq', 3: 'fu', 4: 'kolo'}
字典的取值和更新
1 dic2 2 {'馬化騰': 'QQ', '馬雲': '支付寶', '李彥宏': '百度'} 3 dic2.get('111') 4 dic2.get('馬化騰') 5 'QQ' 6 dic2.update({'馬化騰':'tecent'}) 7 dic2 8 {'馬化騰': 'tecent', '馬雲': '支付寶', '李彥宏': '百度'}
fromkeys可以為字典的鍵賦多個相同的值
1 dic2.fromkeys(('馬化騰', '馬雲'), '大佬') 2 {'馬化騰': '大佬', '馬雲': '大佬'}