基础学习记录(6/17)——字典与集合

一、字典

1.字典定义

字典(Dictionary)是基础数据结构的映射(Mapping)的一种,也是python中唯一的映射类型。序列是按照顺序来存储数据,而字典的通过键存储数据的。字典的内部实现是基于二叉树(Binary Tree)的,数据没有严格的顺序。字典将键映射到值,通过键来调取数据。注意如果键值本来是有顺序的,那么就不应该使用字典。

2.字典的创建与操作

字典基本的创建语法 {元素1,元素2,…,元素n}

  • 字典是无序键值对元素集合
  • 其中每一个元素是一个键值对——“键:值”(在同一个字典中键必须互不相同)
  • 字典中的键可以是任何不可变的类型,如浮点数(实数)、字符串或元组
  • 一组中的键与值用“:”分隔开,不同组的键值用“,”分割开
  • 整个字典用大括号“{ }”括起来
  • 另外一种创建字典方法是使用元组和dict()函数
category = {'apple':'fruit','zootopia':'film','football':'sport'}
#{'apple': 'fruit', 'zootopia': 'film', 'football': 'sport'}
items=[('height',1.80),('weight',124)]  # 也可以通过元组和dict()创建字典
D = dict(items)
print(D)  # result: {'weight': 124, 'height': 1.8}

字典的基本操作
假设存在字典D

  • 查询键值对D[key]并返回键key关联的值
  • 修改键值对D[key]=new_value,将new_value关联到键key上
  • 插入键值对D[new_key]=new_value,如果字典中不存在键new_key,如此操作便增加了键值对
  • 删除键值对del[key],删除键为key的键值对
category = {'apple':'fruit','zootopia':'film','football':'sport'}
print(category['apple'])      # 查询键值对
#result: fruit
category['football']='ball game' #修改键对
print(category)
#{'apple':'fruit','zootopia':'film','football':'ball game'}
category['lemon'] = 'fruit'  # 插入新的键值对
#result: {'zootopia': 'film', 'lemon': 'fruit', 'apple': 'fruit', 'football': 'sport'}
del category['lemon']       # 删除键值对
print(category)
#result: {'zootopia': 'film', 'apple': 'fruit', 'football': 'sport'}

二、集合

1.集合的定义

集合是python中特俗的数据类型,它之所以特殊是因为它既不是序列也不是映射类型,更不是标量。集合是自成一体的类型。集合是唯一的,不可变的对象是一个无序集合。集合随想支持与数学理论相对应的操作,如并和交。

2.创建集合

创建集合只需要在声明集合时把集合的元素包含在大括号内,并于逗号分隔开。还有一种方法是使用ste()函数,通过一个列表或元组创建集合

'''创建集合'''
set1 = {1,2,3}    # 直接创建集合
set2 = set([2,3,4])  # set()创建
print(set1,set2)
# result: set([1, 2, 3]) set([2, 3, 4])

3.集合的操作

集合能通过表达式操作符支持一些数学集合的运算,这是集合特有的操作,序列和映射都不支持这种表达式,假设存在这样的集合x=set([1,2,3]),y=set([2,3,4])

表达式结果意义
x-yset([1])集合的差,返回包含在x且不包含在y中的元素集合
x\yset([1,2,3,4])集合的并,返回包含在x和y中的元素集合
x&yset([2,3])集合的交,返回既包含在x也包含在y的元素的集合
x^yset([1,4])集合的异或,返回只被x包含或只被y包含的元素的集合
x>yFalse如果x真的包含y,则返回Ture,否则返回False
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值