字典的常用操作,map zip的使用

# 字典是一个可变的数据类型
# 创建空字典
dic = {}
print(type(dic))    # <class 'dict'>


# 创建字典(1)  元素不限,可以是任何数据类型
zbq_infor = {"addr": "Hebei", "age": "36", "hobbit": ["play basketball", "play football"]}
# 注意1 键只能是不可变的数据类型
# zbq_infor = {["adder"]:"Hebei"}    TypeError: unhashable type: 'list'
# print(zbq_infor)
# 上述报错,因为[]是可变数据类型,不能作为键。

# 元组()是不可变的数据类型,没有报错。
zbq_infor = {("adder"): "Hebei"}
print(zbq_infor)

# 注意2:键需要唯一,但是有重复键时,会覆盖保留最后一次
zbq_infor = {"adder": "Hebei", "age": "36", "adder": "Beijing", "adder": "Shanghai"}

# 创建字典(2),通过类
dic2 = dict()
print(type(dic2))        # <class 'dict'>


# dict(mapping)  映射 ("adder", "Heibei")
dic3 = dict([("adder", "Heibei"), ("age", 18)])
# dict(**kwargs)   键值对
dic4 = dict(adder="Hebei", age=18)
dic5 = {"adder": "Hebei", "age": "36"}

# dic3,4,5  是创建字典的三种方法
# map(func, *iterables) --> map object
# 需求 将list("1234")---> [1,2,3,4]   将列表中的每个元素转为int类型
li = list("1234")
print(list("1234"))        # ['1', '2', '3', '4']

print(list(map(int, li)))   # 将li当中的每个元素传到了int()中,再返回。 相当于把map对象转化成列表
# 相当于
print(type(li[0]))         # <class 'str'>
# 再强转成int
print(type(int(li[0])))    # <class 'int'>
# 同样的操作要做4遍
map(int, li)     # map 对象
# <map object at 0x0000014822DD89E8> 出现报错,这种形式是返回不了list类型的,所以还要转化成list类型

inp = input("请输入1 2 3 4,转化成:[1, 2, 3, 4]:")
print(inp.split(" "))     # <class 'list'> ['1', '2', '3', '4']  split返回的是列表
map(int, inp.split(" "))
print(list(map(int, inp.split(" "))))


# 目标 {('name', 'age'): ('sim', 18)}

# 参考,zip将可迭代的对象里面一一对应的元素打包进行返回。
li_k = ["name", "age"]
li_v = ["sim", 18]
# print(zip(li_k, li_v))    <zip object at 0x000002A001FFE348>
print(dict(zip(li_k, li_v)))   # {'name': 'sim', 'age': 18}
dic5 = {"adder": "Hebei", "age": "36"}
# print(dic5[0])    报错 KeyError: 0   dict是一个集合类型,集合类型没有下标的说法。
print(dic5['adder'])     # Hebei   dic[exit  key]
# print(dic5['sex'])  报错 KeyError: 'sex' 当key不存在时,报错、

# 怎么给字典添加值 取出赋值
dic5["name"] = "lucy"
print(dic5)
# 怎么给字典重新赋值,取出修改赋值。


#  删除字典   del  pop(必须传参数)

dic6 = {"adder": "Hebei", "age": "36"}
print(dic6.get("adder"))  # Hebei
print(dic6.get("sex"))    # None  没有找到键值,但是不会报错,方括号会报错

for key, value in dic5.items():
    print(key, value)
# adder Hebei
# age 36
# name lucy

print(dic5.items())   # dict_items([('adder', 'Hebei'), ('age', '36'), ('name', 'lucy')])
print(dic5.keys())    # dict_keys(['adder', 'age', 'name'])
print(dic5.values())  # dict_values(['Hebei', '36', 'lucy'])

# 注意 get item keys values 4个方法的使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值