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')])

 

posted @ 2017-08-29 17:43  光着尐脚丫  阅读(368)  评论(0编辑  收藏  举报