Python中列表、元组、集合、字典
Python 列表(List)
列表是最常用的Python数据类型;
列表中的数据项不需要具有相同的类型;
列表也叫做数组,定义时使用[];
通过下标访问列表中的元素,下标从 0 开始计数
列表的增、删、改、查
增:
1 fruit = ['apple','orange','banana'] 2 s = 'grape' 3 fruit.append(s) # 从末尾插入 4 print(fruit) # ['apple', 'orange', 'banana', 'grape']
删:
1 fruit = ['apple','orange','banana','plum','fig','cherry','watermelon'] 2 fruit.remove('banana') # 删除指定元素 3 print(fruit) # ['apple', 'orange', 'plum', 'fig', 'cherry', 'watermelon'] 4 5 del fruit[1] # 删除指定位置的值 6 print(fruit) # ['apple', 'plum', 'fig', 'cherry', 'watermelon'] 7 8 fruit.pop() # 不传入下标,是删除最后一个值;传入下标,删除的是指定位置的值 9 print(fruit) # ['apple', 'plum', 'fig', 'cherry'] 10 11 fruit.clear() # 清空列表 12 print(fruit) # []
改:
1 fruit = ['apple','orange','banana','plum','fig','cherry','watermelon'] 2 fruit[2] = 'strawberry' # 修改指定位置的值 3 print(fruit) # ['apple', 'orange', 'strawberry', 'plum', 'fig', 'cherry', 'watermelon']
查:
1 fruit = ['apple','orange','banana','plum','fig','cherry','watermelon'] 2 print(fruit[0]) # 获取第0个元素 apple 3 print(fruit[-1]) # -1 代表最后一个元素 watermelon
切片:
1 fruit = ['apple','orange','banana','plum','fig','cherry','watermelon'] 2 print(fruit[1:3]) # 取下标1到下标 3 之间的值 ,顾头不顾尾 ['orange', 'banana'] 3 print(fruit[1:-1]) # 取下标1到-1 之间的值 顾头不顾尾 ['orange', 'banana', 'plum', 'fig', 'cherry'] 4 print(fruit[3:]) # 取从第二个下标开始的后面所有元素 ['plum', 'fig', 'cherry', 'watermelon'] 5 print(fruit[::2]) #这个代表取所有的元素,然后每隔2个元素取一个 ['apple', 'banana', 'fig', 'watermelon']
Python 元组
元组和列表一样,唯一不一样的是,元组的值不能改变;元组的定义用小括号 ()
Python 集合
set是一个无序不重复元素集,集合的最好应用是去重。
1 a = [1,1,2,2,3,3] 2 a_set = set(a) 3 print(a_set) # {1, 2, 3}
字典:
1 字典的定义用大括号{ },每个值用 ”,“ 逗号隔开,key和value使用 ”:“ 冒号分隔 2 字典的特性: 3 字典是无序的,因为它没有下标,用key来当索引,所以是无序的 4 字典的key'必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
1 info = { 2 'name':'xiaoming', 3 'sex':'nan', 4 'age':20, 5 'id':1 6 }
1 print(info['name'])#通过key取值 2 print(info.get('addr')) # 通过get取值,取不到key时不会报错,会返回 None 3 # print(info['addr'])#通过key取值 []中取值找不到key的时候会报错KeyError: 'addr' 4 print(info.get('id'))#通过key取值 5 print(info.get('addr','beijing'))#通过key取值
增:
1 # 给字典新增一个值 === 列表中不可以这样写 2 info['addr'] = 'beijing' 3 print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20, 'id': 1, 'addr': 'beijing'} 4 5 # 给字典新增一个值 6 info.setdefault('phone',13511111111) 7 print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20, 'id': 1, 'phone': 13511111111}
删:del、pop()、popitem()、clear()
1 del info['id'] 2 print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20} 3 4 info.pop('name') 5 print(info) #{'sex': 'nan', 'age': 20, 'id': 1} 6 7 info.popitem() # # 随机删除一个元素 8 9 info.clear() # 清空字典
查:
1 # 字典的查询 2 infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']} 3 print(infos.get('maryy'))#获取marry的信息,这种方式如果key不存在的话,会返回None。 None 4 print(infos['marry'])#获取marry的信息,这种方式如果key不存在的话,会报错。 [18, 18612512981, '北京'] 5 print('marry' in infos) #判断marry是否在这个字典中,返回True或者False。 True
1 all = { 2 'car':{ 3 'color':['red','yellow','black'], 4 'money':11111, 5 'pailaing':'2.5L', 6 'name':'A' 7 }, 8 'car1':{ 9 'color':['red','yellow','black'], 10 'money':11111, 11 'pailaing':'2.5L', 12 'country':'china' 13 }, 14 'car2':{ 15 'color':['red','yellow','black'], 16 'money':11111, 17 'pailaing':'2.5L' 18 } 19 }
在car1中添加颜色:orange
1 # car1中加一个颜色 2 all.get('car1').get('color').append('orange') 3 print(all) 4 5 all.get('car').get('color')[1] = 'orange' # 将car中的yellow改成orange
1 # 返回字典里所有的key 2 print(all.keys())# 返回字典里的所有的key 3 print(all.values())# 获取字典里的所有的value 4 print(all.items())# 获取字典的key和value,循环的时候用
字典的合并:
1 info = { 2 'name':'xiaoming', 3 'sex':'nan', 4 'age':20, 5 'id':1 6 } 7 info2 = { 8 'name':'hhh', 9 'sex':'nan' 10 } 11 # 把两个字典合并到一起,如果有一样的key,那么更新value 12 info.update(info2) 13 print(info) # {'name': 'hhh', 'sex': 'nan', 'age': 20, 'id': 1}
字典的循环:
1 # 直接循环字典,循环的是字典的key,如果想循环的时候同时获取到key和value, 那么就要用 .items()方法 2 print(info.items()) # dict_items([('name', 'xiaoming'), ('sex', 'nan'), ('age', 20), ('id', 1)]) 3 4 # 第一种方法 5 # items 方法的作用就是为了让你循环的时候同时把key和value取到 6 for k,v in info.items(): 7 print('%s is %s'%(k,v)) 8 9 # 第二种方法 10 for k in info2:#这种方式效率比较高 11 print(k,info2[k])
字典中判断key是否存在
1 Python3中直接用 in 来判断 key 是否存在 2 print('name' in info2) # True
字典的内置方法:
1 # 字典的内置方法 2 print(info.values())#打印所有value。 dict_values(['xiaoming', 'nan', 20, 1]) 3 print(info.keys())#打印所有的key。 dict_keys(['name', 'sex', 'age', 'id']) 4 print(info.setdefault('stu1','盛夏'))#如果这个key存在的话,那就不动它,不存在的话,添加一个。 盛夏 5 dic2 = {'stu1':'sriba','stu10':'baidu'} 6 info.update(dic2)#更新字典值,如果key存在的话,就更新,不存在的话就添加 7 print(info.items())#字典转换成一个list 。 dict_items([('name', 'xiaoming'), ('sex', 'nan'), ('age', 20), ('id', 1), ('stu1', 'sriba'), ('stu10', 'baidu')])
别着急羡慕别人的生活,要过好现有的日子,再去追求想要的状态。漂泊累了,还能回家;在家烦了,马上出发。有改变生活的能力,有适应生活的心态,这样,你既可朝九晚五,又可浪迹天涯。