在使用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‘}
时间: 2024-09-30 14:38:44