字典

字典

  • 字典是列表以外Python中使用最灵活的内置数据类型
  • 可变
  • 和列表的区别:
    • 列表有序,字典无序
    • 列表通过索引(偏移)访问元素,字典通过键(key)访问元素

格式:

值(value)可以取任意数据类型,但键(key)必须是不可变数据类型

dic = {key:value,key:value}

即key必须可哈希,即不可改变的数据结构(字符串str、元组tuple、对象集objects)

特点

  • 1.key:value ,键值对之间用冒号链接
  • 2.key:value 组成字典的一个元素
  • 3.键值对之间用逗号隔开
  • 4.整个字典用花括号{}包裹

字典的创建

空字典
dic = {}
print(type(dic))

多元素字典
info = {"id":20190101,"name":"Tom","age":18}  
print(info)
强转

当字典强制转为别的数据类型时,只会留下key值

dic = dict(id=20190101,name="tom",age=18)
print(dic)



zip()
key = ("id","name","age")
value = (20190909,"tom",18)
tp = tuple(zip((key,value)))
print(tp,type(tp))

print(dict((('id',20190101),('name',"tom"))))
通过字典的fromkeys方法创建字典

格式:

dict.fromkeys(seq,val=None)
  • 创建并返回一个字典

    • 以seq中的值作为键

    • val的值作为该字典中所有键的初始对应值;如不提供,默认为None

dic = dict.fromkeys("hello")
print(dic)

# {'h': None, 'e': None, 'l': None, 'o': None}

dic = dict.fromkeys(["tom","jack","acde"],6666)
print(dic)
# {'tom': 6666, 'jack': 6666, 'acde': 6666}

字典的常见操作

1)直接添加键值对

  • 通过使用变量名[“键”]=“值”,
    • 如果key不存在,新建键值对
    • 如果存在,则更新值(value)
dic = {}
dic["id"]= 2019
dic["name"]="AA"
print(dic)



li = []
while True:
    dic = {}
    id = input("请输入ID:\t")
    name = input("请输入name:\t")
    age = ("请输入age:\t")

    dic["id"] = id
    dic["name"] = name
    dic["age"] = age
    li.append(dic)
    flag = input("Continue?(Y/N")
    if flag.lower() == "n":
        break
        
    #print(dic)
print(li)
  • dict.update(dic)

    把字典dic中的键值对更新到dict中

    • 两个字典的键完全不同,则将dic的键值对全部添加至dict

    • 存在相同的键,则更新dict中的对应值

  • dict.pop

    • 格式:dict.pop(key[,default])

      • 格式:dict.pop(key[,default])

      • 如果不存在,给出默认值则返回默认值,未给出默认值,报错

      如果key存在于dict种,删除并返回dict[key]

      如果不存在,给出默认值则返回默认值,未给出默认值,报错


print(dict)dict = {'id':20190101,'name':"tom",'age':19}
print(dict.pop("job","it"))
print(dict)
  • dict.popitem()
    • 随机删除一对key:value(一般删除末尾对)
    • 返回值为被删除的key:value的元组
dict = {'id':20190101,'name':"tom",'age':19}
#print(dict.popitem())
key, value = dict.popitem()
print(dict)
print(key, value)
  • del
    • 删除指定的键值对,如果不指定则删除整个字典
dict = {'id':20190101,'name':"tom",'age':19}
del dict["age"]
print(dict)
  • dict.clear()
    • 清空字典
dict = {'id':20190101,'name':"tom",'age':19}
print(dict.clear())
print(dict)

  • update
dic =
dic2 =
dict =
dict.update(dic2)
  • 直接修改
dic = {'id':20190101,'name':"tom",'age':19}
dic["id"] = 20190202
print(dic)
  • dict.setdefault()
    • 键存在,不改动,返回字典中的值
    • 键不存在,在字典中添加相应的键值对,并返回对应的值
dic = {'id':20190101,'name':"tom",'age':19}
print(dic.setdefault("name","tom"))
print(dic.setdefault("salary",1000))
print(dic)
  • 字典值的访问
    • 直接通过字典的key访问value
    • 如果key不存在则报错
dic = {'id':20190101,'name':"tom",'age':19}
print(dic["id"])
print(dic["job"]) 
  • dict.get()访问value
    • 语法格式 dict.get(key[,default])
    • 不确定字典中是否存在某个键而又想对其进行操作,比如获取值 -->get方法
    • 当key不存在的时候,不会抛出异常,返回None
dic = {'id':20190101,'name':"tom",'age':19}
print(dic.get("id",20190201))
print(dic.get("salary"))
遍历
  • dict.keys()
    • 返回所有key值
  • dict.values()
    • 返回所有value
  • dict.items()
    • 返回所有键值对
dic = {'id':20190101,'name':"tom",'age':19}
print(dic.get("id",20190201))
print(dic.keys(),type(dic.keys()))

for key in dic.keys():    
	print(key,end=" ")
for value in dic.values():    
	print(value,end=" ")
for item in dic.items():    
	print(item,end="")
for key,value in dic.items():    
	print(key,":",value)

习题

li = [23,34,45,22,67,89,90,99,66,45]

返回

{">=60":[],"<60":[]}

li = [23,34,45,22,67,89,90,99,66,45]
li1 = []
li2 = []
for i in li:    
	if i >= 60 :        
		li1.append(i)    
	else:        
		li2.append(i)
dic = {">=60":li1,"<=60":li2}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值