在使用Python编程中,我们最常用的几种集合类型是:List,Tuple,Set,Dict;下面简单聊聊这几种集合类型;

List 列表:相当于一个数组,不过list的长度是自动变化的而且列表元素自由的,不必每个元素都是同一种类型。它的简洁的定义方式是a=[]。是一种有序组合,可以删除和添加其中的元素;

List的基本操作如下:

##生成一个list,并赋值给list_ex
>>> list_ex=[1,3,4,"list","Tuple","dict",'set']
>>> list1_ex

>>> list_ex
[1, 3, 4, 'list', 'Tuple', 'dict', 'set']

>>> ##获取list中的元素个数

>>> len(list_ex)
7
 #用索引访问list中的位置,访问范围:-n`~n-1;当索引超出范围时,会报一个IndexError错误
>>> list_ex[0]
1
>>> list_ex[-1]
'set'
>>> list_ex[len(list_ex)-1]
'set'
#在list尾部增加一个元素
>>> list_ex.append('over')
>>> list_ex
[1, 3, 4, 'list', 'Tuple', 'dict', 'set', 'over']
 #插入元素到指定位置list_ex.insert(1,'2')

>>> list_ex
[1, '2', 3, 4, 'list', 'Tuple', 'dict', 'set', 'over']
>>> list_ex.insert(1,2)
>>> list_ex
[1, 2, '2', 3, 4, 'list', 'Tuple', 'dict', 'set', 'over']
#删除一个元素
>>> list_ex.pop()
'over'
>>> list_ex
[1, 2, '2', 3, 4, 'list', 'Tuple', 'dict', 'set']
#删除指定的元素
>>> list_ex.pop(2)
'2'
>>> list_ex
[1, 2, 3, 4, 'list', 'Tuple', 'dict', 'set']
 #一个list的元素可以说另一个list
>>> list_exs=['Python',list_ex,'over']
>>> list_exs
['Python', [1, 2, 3, 4, 'list', 'Tuple', 'dict', 'set'], 'over']
#list_exs的长度应该是3
>>> len(list_exs)
3
 #list_exs可以认为是一个二维数组
>>> list_exs[2][0]
'o'
>>> list_exs[1][3]
4

 #设置一个空list,长度为0

>>> l=[]
>>> l
[]
>>> len(l)
0

Tuple 元组:也是一种有序列表,和list非常相似,但是tuple一旦初始化就不能再修改;无法对Tuple进行增加和删除元素。正是由于Tuple不可变,所以代码更加安全;在某种特殊情况下,要想修改Tuple中非list元素,可以先转换为list然后在修改,最后转回为Tuple;Tuple基本操作如下:

1 #定义tuple  
 2 >>>tp=('list','tuple','dict','set')  
 3 >>>tp  
 4 ('list','tuple', 'dict', 'set')  
 5 #取出tuple中的元素  与list相同  
 6 >>>tp[2]  
 7 'dict'  
 8 >>>tp[-1]  
 9 'set'  
10 #定义只有一个元素的tuple  末尾要加,(1,)而不能直接用(1)  
11 >>>tp=(1,)  
12 >>>tp  
13 (1,)  
14 >>>tp=(2)  
15 >>>tp  
16 2  
17 #tuple中包含list  
18 >>>tp=(1,py,3)  
19 >>>tp  
20 (1, ['1','tuple', 'dict', 'set'], 3)  
21 >>>tp[1][1]=2  
22 >>>tp  
23 (1, ['1',2, 'dict', 'set'], 3)

Dict 字典:即键值对类型,键名不可重复,并且不可以变化;简单的定义方式为:a={},是一种无序组合;其原理和现实查字典一样,通过字典中的索引列表查到所需要字的页码号,然后直接翻到该页查到你所需要的字的值;其查找速度非常快,不会随着字典的大小而变化。

字典的具体操作如下所示:

1 生成一个dict,dict内部存放的顺序和key放入的顺序是没有关系的   
 2 dt={'a':1,'b':2,'c':3,'d':4}  
 3 >>>dt  
 4 {'d':4, 'c': 3, 'b': 2, 'a': 1}  
 5 #通过key 取出 value  
 6 >>>dt['c']  
 7 3  
 8 #新建key 和 value  
 9 >>>dt['e']=5  
10 >>>dt  
11 {'e':5, 'd': 4, 'c': 3, 'b': 2, 'a': 1}  
12 #通过key 重新对value赋值  
13 #由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉  
14 >>>dt['e']=10  
15 >>>dt  
16 {'e':10, 'd': 4, 'c': 3, 'b': 2, 'a': 1}  
17 #如果key不存在,dict就会报错  
18 >>>dt['f]  
19     
20 SyntaxError:EOL while scanning string literal  
21 >>>dt['f']  
22 Traceback(most recent call last):  
23   File "<pyshell#1093>", line1, in <module>  
24     dt['f']  
25 KeyError:'f'  
26 #通过in判断key是否在dict中  
27 >>>'b' in dt  
28 True  
29 #通过get 方法获得key对应的value 不存在时返回指定的值  
30 >>>dt.get('f',-1)  
31 -1  
32 >>>dt.get('a',-1)  
33 1  
34 #使用pop(key)删除指定的key 和对应的value  
35 >>>dt.pop('a')  
36 1  
37 >>>dt  
38 {'e': 10, 'd': 4, 'c': 3,'b': 2}

Set 集合:和dict类似,但一组key的集合,不存储value值;是一个无序的组合,其中key值是不可重复的(int,float,bool,str,tuple);具体操作如下:

#生产一个set
>>> St=set([1,2,3,4,5])
>>> St
{1, 2, 3, 4, 5}
# set中不会出现重复的键值
>>> St=set('23455432')
>>> St
{'3', '4', '5', '2'}
#通过add(key)增加一个key值
>>> St.add('1')
>>> St
{'3', '4', '1', '5', '2'}
 #通过remove(key)向set删除key 值
>>> St.remove('3')
>>> St
{'4', '1', '5', '2'}