Python学习笔记(5)-dict和set
来源:互联网 发布:c语言中short什么意思 编辑:程序博客网 时间:2024/05/17 18:16
简单的字典
字典,类似java中Map,数据都是键-值对(key-value)的形式存储,可对比着记忆
(注意:1.字典使用{ }
表示,列表是[ ]
2.key必须是不变的,才能计算出value的值,如字符串,整数等,但是列表是可变的,不能作为字典的key)
代码:
user = {'name': 'gourdBaBy', 'age': '1'} #注意键值对中间是冒号 : 不同键值对中间是逗号 , print("name: " + user['name'])print("age: " + user['age'])
结果:
name: gourdBaByage: 1
使用字典
添加键-值对
(字典添加时不关心添加顺序,一般新建空字典,然后根据逻辑添加数据)
代码:
user = {'name': 'gourdBaBy', 'age': 1}print(user)user['height'] = 60 #添加键值对的时候直接赋值给新key即可user['ability'] = 'ironskin'print(user)
结果:
{'age': 1, 'name': 'gourdBaBy'}{'height': 60, 'age': 1, 'ability': 'ironskin', 'name': 'gourdBaBy'}
修改字典中的值
同列表一样,直接赋值语句即可
代码:
user = {'name': 'gourdBaBy', 'age': 1}print(user['name'])user['name'] = 'yeye' #此处修改name的值print(user['name'])
结果:
gourdBaByyeye
判断字典中是否含有某个key,例如
代码:
info = {'tom': 18, 'jack': 22, 'lili': 55}print ('tom' in info) #in只是查询键(key)是否存在print ('lucy' in info)print (info.get('tom')) #get()可指定key来查询是否存在print (info.get('lucy'))print (info.get('lucy', 100)) #get()不存在时,可指定返回值
结果:
TrueFalse18None100
删除键-值对
使用del
语句
代码:
user = {'name': 'gourdBaBy', 'age': 1}print(user)del user['age'] #删除age键值对print(user)
结果:
{'age': 1, 'name': 'gourdBaBy'}{'name': 'gourdBaBy'}
还可以使用pop()
语句,效果同列表,但pop()
必须带参数,因为列表是有序的,默认删除最后的一项,字典是无序的
代码:
info = {'tom': 18, 'jack': 22, 'lili': 55}print (info.pop('tom')) print info# print (info.pop()) #该句会报错,会提示必须传入参数
结果:
18{'lili': 55, 'jack': 22}
遍历字典
可以用for
循环遍历字典,字典是没有顺序的
代码:
user = {'name': 'gourdBaBy', #字典建议写成这样的格式 'age': 1, 'ability': 'ironskin', 'height': 60}for key, value in user.items(): #注意是items() print("Key: " + key) print("Value: " + str(value) + "\n")
结果:
Key: nameValue: gourdBaByKey: abilityValue: ironskinKey: ageValue: 1Key: heightValue: 60
若代码中的
for key, value in user.items():
改为
for key in user.keys():
或者for key in user:
(此状态是默认状态)
则只遍历键(key)
同理,若改为
for value in user.values():
则只遍历值(value)
若有重复的值,可以使用set()
函数,传入的参数是个list
对结果进行重复值清除的处理
代码:
user = {'A': 2, 'B': 1, 'C': 2, 'D': 1}for value in set(user.values()): #set函数处理结果,清除重复值 print("Value: " + str(value))
结果:
Value: 1Value: 2
set
set是个无序不重复的集合,可传入iterable
类型的数据,如无嵌套类型的列表和字典或字符串
代码:
a = {'a': 'b', 'c': 'd', 'c': 'e'}print (set(a)) #传入字典,只显示key值,且不重复a = 'ssdfasdf'print (set(a))a = ['a', 'b', 'c', 'c']print (set(a))
结果:
set(['a', 'c'])set(['a', 's', 'd', 'f'])set(['a', 'c', 'b'])
set添加和删除
添加用add()
方法,删除用remove()
方法
代码:
myset = set(['a', 'b', 'c']) #字典用法相同print (myset)myset.add('d')print (myset)myset.remove('a')print (myset)
结果:
set(['a', 'c', 'b'])set(['a', 'c', 'b', 'd'])set(['c', 'b', 'd'])
set交集并集
两个set可以做数学里交集和并集的运算
代码:
myset1 = set(['a', 'b', 'c'])myset2 = set(['a', 'c', 'd'])print (myset1 & myset2) #相交print (myset1 | myset2) #相并
结果:
set(['a', 'c'])set(['a', 'c', 'b', 'd'])
嵌套
列表中嵌套字典
代码:
user1 = {'name': 'A', 'age': 11}user2 = {'name': 'B', 'age': 12}user3 = {'name': 'C', 'age': 13}users = [user1, user2, user3] #列表中存储字典for user in users: print(user)
结果:
{'name': 'A', 'age': 11}{'name': 'B', 'age': 12}{'name': 'C', 'age': 13}
e.g. 创建30个相同的字典,存储到列表中,只打印前4个。
代码:
# 先创建一个空列表,用于存储创建的字典users = []# 创建30个字典for user in range(30): #循环30次,注意rang()函数的使用 user = {'name': 'Jack', 'age': 10} users.append(user)# 显示前4个for user in users[:4]: print(user)print("...")
结果:
{'name': 'Jack', 'age': 10}{'name': 'Jack', 'age': 10}{'name': 'Jack', 'age': 10}{'name': 'Jack', 'age': 10}...
字典中嵌套列表
注意:键(key)不能是列表,只能值(value)是列表
代码:
user = { 'name': 'Jack', 'favorite_book': ['葫芦娃', '少林寺', '尼姑庵'],}print("你的名字是:\n" + user['name'] + "\n你最喜欢的书是:")for book in user['favorite_book']: #遍历字典favorite_book键的值(列表) print(book)
结果:
你的名字是:Jack你最喜欢的书是:葫芦娃少林寺尼姑庵
字典中嵌套字典
注意:键(key)不能是字典,只能值(value)是字典
代码:
users = { 'BigDog': { #键(key)为BigDog,值(value)为后边的字典 'name': 'Jack', 'age': 10, 'location': 'CHN', }, 'SmallCat': { 'name': 'Lili', 'age': 12, 'location': 'USA', },}for username, userinfo in users.items(): #键值对 print("用户名是:" + username) print("个人信息是:") print("\t名字:" + userinfo['name']) print("\t年龄:" + str(userinfo['age'])) print("\t地址:" + userinfo['location'])
结果:
用户名是:SmallCat个人信息是: 名字:Lili 年龄:12 地址:USA用户名是:BigDog 个人信息是: 名字:Jack 年龄:10 地址:CHN
- Python学习笔记(5)-dict和set
- Python学习笔记 - dict和set
- python学习笔记 使用dict和set
- python学习笔记3--dict和set
- python学习笔记(四)dict和set类型
- Python学习笔记(四)dict和set
- Python-dict和set(学习笔记2)
- Python学习笔记——dict和set
- python学习笔记—使用dict和set
- 02-python学习笔记:字典dict和集合set
- Python学习笔记——使用dict和set
- python学习(6)python基础、使用dict和set
- Python学习笔记之dict、set
- Python开发学习笔记(7) - dict, set
- Python学习(五)---使用dict和set
- Python基础学习--第五篇(Dict和Set类型)
- python学习(6)dict字典和set
- Python学习五:dict 和 set
- 关于设置ListView中Item的高度
- Remove Duplicates from Sorted Array
- nyoj3533D dungeon
- 生命在于运动
- 第十六周 项目1--验证算法(6)--堆排序
- Python学习笔记(5)-dict和set
- python编译原理和列表讲解第一部分
- Ubuntu16.04 Oracle JDK安装配置
- Javascript 之入门
- 前端开发小技巧——取消a标签点击之后的虚线框
- Java快速查找21位花朵数
- source insight 头文件与源文件切换
- Miller Rabin算法
- 如何判断int数据类型为空