Task05字典、集合和序列

字典、集合和序列

  • list() 转换为列表类型
  • set(value),把列表或元组转换为集合
  • tuple(),转换为元组类型
  • map() 会根据提供的函数对指定序列做映射

09字典

笔记

在这里插入图片描述

  • 字典是无序的键:值(key:value)对集合,键必须是互不相同的(在同一个字典之内)
  • key不能重复
1.可变类型与不可变类型
  • 字典是Python 唯一的一个映射类型,以 "关键字"为索引 ,关键字可以是任意不可变类型,通常用字符串或数值
dic1['user'] = 'root' #修改字典中关键字为user对应的值

-判断一个数据类型X是不是可变类型的方法:
1.麻烦方法:id(X),比较X进行某种操作前后的id值,id相同:X可变;不同:X不可变
2.便捷方法:hash(x),不报错:不可变(可被哈希);报错:可变(不可被哈希)

i = 1
print(id(i))  # 140732167000896
i = i + 2
print(id(i))  # 140732167000960
l = [1, 2]
print(id(l))  # 4300825160
l.append('Python')
print(id(l))  # 4300825160

print(hash('Name'))  # -9215951442099718823
print(hash((1, 2, 'Python')))  # 823362308207799471
print(hash([1, 2, 'Python']))
# TypeError: unhashable type: 'list'
print(hash({
   1, 2, 3}))
# TypeError: unhashable type: 'set'
2.字典的定义
  • 字典定义语法为 {元素1, 元素2, ..., 元素n}
    其中每一个元素是一个「键值对」-- 键:值 key:value
3.创建和访问字典
  • 直接按照定义语法打代码,key可以是数值、字符串、元组(类型不可变即可)
dic = {
   '李宁': '一切皆有可能', '耐克': 'Just do it', '阿迪达斯': 'Impossible is nothing'}
dic1 = {
   1: 'one', 2: 'two', 3: 'three'}
dic = {
   (1, 2, 3): "Tom", "Age": 12, 3: [3, 5, 7]}
  • dict():创建空的字典,再通过key把数据放入字典中,一个key对应一个value,后面的值会把前面的值冲掉
dic = dict()
dic['a'] = 1
print(dic) # {'a': 1}
dic['a'] = 11
print(dic) # {'a': 11}
dic['b'] = 2
print(dic) #{'a': 11, 'b': 2}
  • dict(mapping)通过(键:值)对构建新的字典
dic1 = dict([('apple', 4139), ('peach', 4127), ('cherry', 4098)])
print(dic1)  # {'cherry': 4098, 'apple': 4139, 'peach': 4127}

dic2 = dict((('apple', 4139), ('peach', 4127), ('cherry', 4098)))
print(dic2)  # {'peach': 4127, 'cherry': 4098, 'apple': 4139}
  • dict(**kwargs)通过 key = value构建,这种情况下键只能是字符串类型,并且创建的时候不能加上引号
dic = dict(name='Tom', age=10)
print(dic)  # {'name': 'Tom', 'age': 10}
  • 通过键,索引字典中的值,取得键不在字典中会报错KeyError
dic1 = {
   1: 'one', 2: 'two', 3: 'three','rice': 35, 'wheat': 101, 'corn': 67}
print(dic1[1])  # one
print(dic1[4])  # KeyError: 4
print(dic1['rice'])  # 35
4.字典的内置方法
  • dict.fromkeys(seq[, value]) 用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值
seq = ('name', 'age', 'sex')
dic3 = dict.fromkeys(seq, ('小马', '8', '男'))
print(dic3) #{'name': ('小马', '8', '男'), 'age': ('小马', '8', '男'), 'sex': ('小马', '8', '男')}

  • dict.keys()返回一个可迭代对象,可以使用 list() 来转换为列表,列表为字典中的所有键
  • dict.values()返回一个迭代器,可以使用 list() 来转换为列表&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值