python之 list、tuple、dict、set
2016-08-24 14:32:59
list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
例如:定义一个列表L,里面存放了一些姓氏。print(l)就输入了整个列表。
1 >>> l = ['赵','钱','孙','李'] 2 >>> print (l) 3 4 ['赵', '钱', '孙', '李']
对列表的操作一般为:增、删、改、查。
查:
用下标取列表中的值,第一个元素的下标为0。
1 l = ['zhao','qian','sun','li','zhou','wu','zheng','wang'] 2 3 # 查 4 print(l) 5 ['zhao', 'qian', 'sun', 'li', 'zhou', 'wu', 'zheng', 'wang'] 6 print(l[1]) 7 qian 8 print(l[-1]) 9 qian 10 print(l[1:]) 11 ['qian', 'sun', 'li', 'zhou', 'wu', 'zheng', 'wang'] 12 print(l[1:5]) 13 ['qian', 'sun', 'li', 'zhou'] 14 print(l[5:1:-1]) #从下标为5的元素开始,-1:就是倒着往前步长为1 取元素,取到下标为1的位置停止。 15 ['wu', 'zhou', 'li', 'sun', 'qian']
增:
增加一个元素
1 l = ['zhao','qian','sun','li','zhou'] 2 #append, 在列表末尾追加 3 print(l) 4 ['zhao', 'qian', 'sun', 'li', 'zhou'] 5 l.append("zhou") 6 print(l) 7 ['zhao', 'qian', 'sun', 'li', 'zhou', 'zhou'] 8 9 #insert,根据索引插入任何想插入的位置 10 l.insert(1,'wang') 11 print(l) 12 ['zhao', 'wang', 'qian', 'sun', 'li', 'zhou', 'zhou']
改:
修改列表内的元素。
1 #修改 2 l = ['zhao','qian','sun','li','zhou'] 3 print(l) 4 ['zhao', 'qian', 'sun', 'li', 'zhou'] 5 6 l[1] = 'lao wang' 7 print(l) 8 ['zhao', 'lao wang', 'sun', 'li', 'zhou'] 9 10 #批量插入 11 l[2:4] = ['a','b','c'] 12 print(l) 13 ['zhao', 'lao wang', 'a', 'b', 'c', 'zhou']
删:
1 #删 2 l = ['zhao','qian','sun','li','zhou'] 3 print(l) 4 l.pop(2) #通过下标删除内容 5 print(l) 6 l.pop() #pop括号内不加参数,默认删除最后一个元素 7 print(l) 8 del l[1] #删除索引指的元素 9 print(l) 10 del l 11 print(l) 12 ******************** 13 ['zhao', 'qian', 'sun', 'li', 'zhou'] 14 ['zhao', 'qian', 'li', 'zhou'] 15 ['zhao', 'qian', 'li'] 16 ['zhao', 'li'] 17 18 print(l) 19 NameError: name 'l' is not defined #因为del l ,把整个l 列表删除了,所以print的时候报错了
排序:
1 #排序 2 l = ['zhao','qian','sun','li','zhou','wang'] 3 print(l) 4 l.sort() #默认从小到大排序,因为reverse的默认值是False 5 print(l) 6 l.sort(reverse=True) #sort括号里加reverse=True从大到小排序 7 print(l) 8 l.reverse() #反转顺序 9 print(l) 10 l.reverse() 11 print(l) 12 ****************** 13 ['zhao', 'qian', 'sun', 'li', 'zhou', 'wang'] 14 ['li', 'qian', 'sun', 'wang', 'zhao', 'zhou'] 15 ['zhou', 'zhao', 'wang', 'sun', 'qian', 'li'] 16 ['li', 'qian', 'sun', 'wang', 'zhao', 'zhou'] 17 ['zhou', 'zhao', 'wang', 'sun', 'qian', 'li']
身份判断
#身份判断 a = ['zhao','qian','sun','li','zhou','wang'] print(type(a) is list) print(type(a) is str) ************************* True False
tuple
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。
1 t = ('zhao','qian','sun','li','zhou','wang') 2 print(t) 3 print(t[1]) 4 5 ************************* 6 ('zhao', 'qian', 'sun', 'li', 'zhou', 'wang') 7 qian
dict
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。用dict可以装下整个世界,你信吗?
1 #定义一个字典,存入一些用户信息 2 dic = {"name":"ligq","age":23,'job':'IT'} 3 print(dic) #输出整个字典 4 #遍历dic字典中的所有 键 5 for i in dic: 6 print(i,end=' ') 7 print() 8 #遍历dic字典中的所有 值 9 for i in dic: 10 print(dic.get(i),end=' ') #用dict的 get(键)方法,取字典这对应的 值 11 print() 12 #遍历dic字典中的所有 键和值 ---推荐使用 13 for i in dic: 14 print(i,dic[i],end=' ') 15 print() 16 #使用字典的items方法,遍历dic字典中的所有 键和值 17 for i,v in dic.items(): 18 print(i,v,end=' ') 19 print() 20 dic1 = {1:23423,8:32,2:23,5:42} 21 print(dic1) 22 print(dic1.values()) #获取值 23 print(dic1.items()) #获取键-值对 24 print(dic1.keys()) #获取键 25 26 print(dic1.pop(1)) #删除键是1的键值对,并返回删除的值 27 print(dic1) 28 29 30 ******************************* 31 {'age': 23, 'job': 'IT', 'name': 'ligq'} 32 age job name 33 23 IT ligq 34 age 23 job IT name ligq 35 age 23 job IT name ligq 36 {8: 32, 1: 23423, 2: 23, 5: 42} 37 dict_values([32, 23423, 23, 42]) 38 dict_items([(8, 32), (1, 23423), (2, 23), (5, 42)]) 39 dict_keys([8, 1, 2, 5]) 40 23423 41 {8: 32, 2: 23, 5: 42}