Python笔记5~dict,set

#coding=utf-8

#dict  字典数据类型
#set   集合数据类型
#dict和set区别

#dict 数据类型  key(唯一性,不可改变)-value

dog_dict=[{'name':'小黄','age':'18'},{'name':'小黑','age':'12'}]  #数据项 key:value
print(dog_dict)
#输出 [{'age': '18', 'name': '\xe5\xb0\x8f\xe9\xbb\x84'}, {'age': '12', 'name': '\xe5\xb0\x8f\xe9\xbb\x91'}]

#Python中dict的使用

person_dict=dict(name='angela',age=18)
print(person_dict)
#输出 {'age': 18, 'name': 'angela'}
print(type(person_dict))
#输出 <type 'dict'>

#字典的所有项遍历
person_dict={'name':'angela','age':'12','sex':'nv'}
for item in  person_dict.items():
    print(item)
#输出 ('age', '12')
#    ('name', 'angela')
#    ('sex', 'nv')

#字典关键字的遍历

person_dict={'name':'angela','age':'12','sex':'nv'}
for item in person_dict.keys():
     print(item)

#输出
# age
# name
# sex

person_dict={'name':'angela','age':'12','sex':'nv'}
for item in person_dict.values():
    print(item)
#输出
#12
#angela
#nv

person_dict={'name':'angela','age':'12','sex':'nv'}
print(person_dict['name']) #如果获取不存的key报错
#输出 angela


#判断key是否在字典中存在的几种方法
person_dict={'name':'angela','age':'12','sex':'nv'}
print('age' in person_dict)
#输出 True
print(person_dict.__contains__('age'))
#输出  True
print(person_dict.has_key('age'))
#输出  True

#字典的其他操作
#字典删除数据项pop传入关键字key
person_dict={'name':'angela','age':'12','sex':'nv'}
person_dict.pop('sex')  #关键字 key
print(person_dict)
#输出 {'age': '12', 'name': 'angela'}

#删除字典项 popitem
person_dict={'name':'angela','age':'12','sex':'nv'}
person_dict.popitem() #不需要参数,随机删除一个数据项
print(person_dict)
#删除 {'name': 'angela', 'sex': 'nv'}


#字典清空
person_dict={'name':'angela','age':'12','sex':'nv'}
person_dict.clear()
print(person_dict)
#输出 {}

#字典的复制
person_dict={'name':'angela','age':'12','sex':'nv'}
a_dict=person_dict.copy()
print(a_dict)
#输出 {'age': '12', 'name': 'angela', 'sex': 'nv'}


#构建字典的新方法
b_dict=dict.fromkeys(['name','age','sex'],'ben')
print (b_dict)
#输出 {'age': 'ben', 'name': 'ben', 'sex': 'ben'}

#更新和修改字典
person_dict={'name':'angela','age':'12','sex':'nv'}
person_dict['name']='ben'  #更新
print(person_dict)
#输出 {'age': '12', 'name': 'ben', 'sex': 'nv'}

person_dict['favoirte']='足球' #修改,如果修改的不存在,添加
print(person_dict)
#输出 {'age': '12', 'name': 'ben', 'favoirte': '\xe8\xb6\xb3\xe7\x90\x83', 'sex': 'nv'}

person_dict={'name':'angela','age':'12'}
person_dict.setdefault('name','ben') #第一个参数key 第二个是value
person_dict.setdefault('sex','nv')
#setdefault 如果key存在不做修改,如果不存在设置
print(person_dict)
#输出 {'age': '12', 'name': 'angela', 'sex': 'nv'}



#字典的更新方法
person_dict={'name':'angela','age':'12'}
new_dict={'name':'ben','sex':'nan'}
person_dict.update(new_dict) #存在的key直接更新value ,不存在的直接添加
print(person_dict)
#输出 {'age': '12', 'name': 'ben', 'sex': 'nan'}



#set集合数据类型,没有value值,元素不能重复,不能改变
a_set={'name','age'}



#set定义方法
a_set=set()
print(type(a_set))
#输出 <type 'set'>
a_set={1,3,4}
print(type(a_set))
#输出 <type 'set'>
b_set=set([1,2,3])
print(type(b_set))
#输出 <type 'set'>
c_set={1,2,3,4,5,4,3}
print(c_set)
#输出 set([1, 2, 3, 4, 5])
d_set=set([1,2,3,4,5,4,3])
print(d_set)
#输出 set([1, 2, 3, 4, 5])

#set添加元素
f_set=set([1,2,3,4,5,4,3])
f_set.add(3)
f_set.add(9)
print(f_set)
#输出 set([1, 2, 3, 4, 5, 9])

#update 更新set
a_set=set([1,2,3,4,5,4,3])
b_set=set([9,0])
a_set.update(b_set)
print(a_set)
#输出 set([0, 1, 2, 3, 4, 5, 9])

#删除set元素
a_set=set([1,2,3,4,5,4,3])
a_set.remove(5)
print(a_set)
#输出 set([1, 2, 3, 4])

#set 清空
a_set=set([1,2,3,4,5,4,3])
a_set.clear()
print(a_set)
#输出 set([])

#不可改变的集合
num_set=frozenset({2,3,4,5}) #frozenset不可改变的类型
print(num_set)
#输出 frozenset([2, 3, 4, 5])

#不可改变的集合的复制
a_set=num_set.copy()
print (a_set)
#输出 frozenset([2, 3, 4, 5])

#set之间的运算
a_set=set([1,2,3,4])
b_set=set([1,2,3,4,6])
print(a_set==b_set)
#输出 False
print(a_set<b_set)
#输出 True

a_set=set([1,2,3,4])
b_set=set([1,2,3,4,6])
print(a_set&b_set) #a_set 和b_set交集
#输出 set([1, 2, 3, 4])
print(a_set|b_set) #a_set 和b_set并集
#输出 set([1, 2, 3, 4, 6])
print(b_set-a_set) #a_set b_set差集运算
#输出 set([6])
#print(a_set6^b_set) #a_set b_set异或运算
#输出


#list dict set
#list 查找速率随着元素的增对变慢
#dict查找速率由key决定,速率趋近一个恒定值
#list占用的空间小
#dict占用的空间大
#list元素可以重复
#dict中的key不能重复
#set元素不能重复,如果出现重复覆盖

 

posted @ 2018-03-04 19:10  零度咖啡  阅读(131)  评论(0)    收藏  举报