python(3.5)学习笔记(5)

字典与集合

一、字典

字典是无序的可变序列,保存的内容是“键-值对”的形式。

字典的特点:
①通过键来读取,而不是通过索引

②字典是任意对象的无序集合
字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定的顺序

③字典是可变的,并且可以任意嵌套

④字典中的键必须是唯一的
不允许同一个键出现两次,如果出现两次则旧的值会被覆盖
⑤字典中的键必须不可变
键可以使用数字、字符串或元组,但不能使用列表

1、1 字典的创建与删除
定义字典时,每个元素都包含两部分:“键”和“值”,键值之间使用冒号( ‘:’ )分隔,相邻两个元素使用逗号(’,’)分隔,所有元素都放在大括号(’{ }’)中。

(1)使用赋值运算符(’ = ')直接创建

num = {1:'a',2:'b',3:'c',4:'d'} 
print(num)

(2)创建空字典

num = {}
num = dict()

(3)使用dict()函数创建

num = dict(a=1,b=2,c=3,d=4)
print(num)  #输出:{'d': 4, 'c': 3, 'a': 1, 'b': 2}, 没有特定的顺序
num = [(1,'a'),(2,'b'),[3,'c'],(4,'d')] #num为元组或列表
print(dict(num)) #dict将元组或列表转换为字典

(4)通过映射函数创建

num = dict(zip(list1,list2))
zip:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。
    可以使用 tuple() 函数将zip对象转换为元组,使用 list() 转换为列表
list1:表示列表或元组,用于指定要生成字典的键
list2:表示列表或元组,用于指定要生成字典的值
如果list1、list2长度不同,则结果与最短的长度相同
num1 = [1,2,3,4,5]
num2 = ('a','b','c','d')
print(dict(zip(num1,num2))) #输出:{1: 'a', 2: 'b', 3: 'c', 4: 'd'}

(5)使用dcit对象的fromkeys()方法创建值为空的字典

num = [1,2,3,4] #作为字典的键的列表或元组
num = dict.fromkeys(num)
print(num) #输出:{1: None, 2: None, 3: None, 4: None}

(6)字典的删除

num = {1:'a',2:'b',3:'c',4:'b'}
print(num) #输出:{1: 'a', 2: 'b', 3: 'c', 4: 'b'}
num.clear() #清除字典的全部元素,字典还存在
print(num) #输出:{}
del num #删除字典,字典不存在

1、2 访问字典

num = {1:'a',2:'b',3:'c',4:'b'}
print(num) #直接使用print()函数输出字典的内容
print(num[1]) #输出:a;1为指定的键,如果该键不存在会出现异常
print(num[5] if 5 in num else '不存在') #输出:不存在;判断指定的键是否存在,避免异常
print(num.get(5,'不存在')) #输出:不存在;使用get方法获取指定键的值,当指定键不存在时,输出第二个参数,第二个参数可以省略,省略返回None。

1、3 遍历字典

num = {1:'a',2:'b',3:'c',4:'b'}
for item in num.items(): #items()函数,返回值为可遍历的“键-值对”元组列表
    print(item) #输出具体的“键值对”
for key,value in num.items():  #key为键,value为值
    print(key,value) #输出具体的每个键和值
for value in num.values():  #values()返回字典的值
    print(value)
for key in num.keys():  #keys()返回字典的键
    print(key)

1、4 添加、修改和删除字典元素

(1)添加

num = {1:'a',2:'b',3:'c',4:'b'}
num[5]='e'  #添加“键值对”
print(num) #输出:{1: 'a', 2: 'b', 3: 'c', 4: 'b', 5: 'e'}

(2)修改
在字典中,键必须是唯一的,如果新添加的键已经存在,则旧的值会被新的值覆盖,相当于修改。
(3)删除
使用del语句

num = {1:'a',2:'b',3:'c',4:'b'}
del num[1] #删除键为1的键值对,不存在会异常
print(num)

1、5 字典推导式
使用字典推导式可以快速生成字典

num = {i:i*2 for i in range(1,5)} #i为键,i*2为值
print(num)
#根据列表或元组生成字典
num1 = [1,2,3,4]
num2 ='a','b','c','d')
num = {i:j for i,j in zip(num1,num2)}
print(num)

二、集合

python中集合有可变集合和不可变集合,这里主要介绍无序可变集合。

集合的所有元素都放在大括号('{ }')中。
两相邻元素用逗号(',')隔开。
集合中的每个元素都是唯一的,因此集合可以用于去重。

2、1 创建集合

(1)直接使用"{ }"

num = {4,3,2,1,1,2,3,4} #集合中元素的个数没有限制,有重复元素只会保留一个
print(num) #输出:{1, 2, 3, 4},没有特定的顺序,可能不同

(2)使用 set() 函数
set()函数将列表、元组等其他可迭代对象转换为集合。

name = set(num)
num:要转换的对象,可以是列表、元组、range对象、字符串等。如果是字符串,
     返回的集合包含全部不重复的字符。
num1 = [4,3,2,1,1,2,3,4] #输出:{1, 2, 3, 4}
num2 = "表弟爱学习,学习爱表弟" #输出:{'学', '弟', '爱', '习', '表', ','}
num3 = ("表弟爱学习","学习爱表弟") #输出:{'表弟爱学习', '学习爱表弟'}

(3)创建空集合
只能使用set()函数创建。不能使用大括号,使用大括号表示创建空字典。

num = set()
print(type(num)) #输出:<class 'set'>

num = {}
print(type(num)) #输出:<class 'dict'>

2、2 向集合中添加、删除元素

(1)添加元素
使用 add() 方法

name.add(element)
element:要添加的元素。只能使用字符串、数字及布尔类型的True或者False等,
        不能使用列表、元组等。
num = {4,3,2,1,1,2,3,4}
print(num)
num.add(5) #添加一个元素
print(num)

(2)删除元素

num = {1,2,3,4}
print(num)
num.remove(2)  #删除指定元素,不存在会异常
print(num)
num.pop()  #删除集合中排序最小的元素,返回值为删除的元素值
print(num)
num.clear()  #清空集合,变为空集合
print(num)
del num #删除整个集合

2、3 集合的交、并、差集运算

&:交集运算
|:并集运算
-:差集运算
^:对称差集运算

如有错误请指出

参考文献《python从入门到精通》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值