设为首页 加入收藏

TOP

day05_步入百万年薪的第五天——字典(一)
2019-08-15 00:10:15 】 浏览:149
Tags:day05_ 步入 百万年薪 第五 字典

day05

字典

字典—— dict:

字典无序的,可变的数据类型

用于存储大量数据,字典要比列表快,将数据和数据之间进行关联

lst1 = ['常鑫','李文虎','张宇'] # 姓名
lst2 = [10,80,100] # 分数
print(lst1[0],lst[0])

逗号分隔叫做一个元素

{键 : 值,键 : 值} ——键值对

字典以散列表和哈希表存储

字典的键必须是可哈希的——不可变的数据类型——避免哈希冲突使用了(开放寻址法)

不可哈希的——可变的数据类型:列表

要求唯一——如果有重复的后面的将前面的覆盖

字典的值:可以任意

定义:dic = {} 
dic = {"常鑫":10,"李文虎":80,"张宇":100,10:"大黑哥",True:123,(1,2,3):"大煎饼",[1,2]:"meet"}
print(dic)

字典的增加

  • dic['10'] = 89 : 暴力添加
dic = {'常鑫':[1,2,3],'李文虎':'89'}
dic['李文虎'] = 99
print(dic)
  • dic.setdefault('内容':'内容') :

用李文虎这个键去字典进行查询,如果不存在就执行添加,如果存在就不添加

dic = {'常鑫':[1,2,3],'李文虎':'89'}
dic.setdefault('李文虎':'99')
print(dic)
print(dic.setdefault('李文虎'))

字典的删除

  • del dic[键] :通过字典的键删除键值对
dic = {'常鑫':[1,2,3],'李文虎':'89'}
del dic['常鑫'] 
print(dic)
  • dic.pop(键) :通过字典的键删除键值对

也有返回值:返回的是被删除的值

dic = {'常鑫':[1,2,3],'李文虎':'89'}
print(dic.pop('常鑫'))
print(dic)
  • dic.clear() :清空
dic = {'常鑫':[1,2,3],'李文虎':'89'}
dic.clear()
print(dic)

字典的改

  • dic[键] = 值 : 字典中没有这个键值对,就是添加,有的时候就是修改
dic = {'常鑫':[1,2,3],'李文虎':'89'}
dic['常鑫'] = 'dsb'
print(dic)
  • dic.update(字典) :update括号中的级别高于update前面的字典,有一样就更改值,如果没有就添加在后面
dic = {"常鑫":[1,2,3],'李文虎': '89'}
dic1 = {"1":3,"5":9,"李文虎":100}
dic1.update(dic)
print(dic1)

字典的查

  • for循环获取的是字典中每个键值对的键
dic = {"常鑫":[1,2,3],'李文虎': '89'}
for i in dic:
    print(i)
  • dic.get(键):通过键获取值,如果不存在就返回None
dic = {"常鑫":[1,2,3],'李文虎': '89'}
print(dic.get('常鑫'))# 结果是[1,2,3]

dic = {"常鑫":[1,2,3],'李文虎': '89'}
print(dic.get('cx'))# 结果是None
  • dic[键] (建议不使用): 通过键获取值,如果不存在就报错
dic = {"常鑫":[1,2,3],'李文虎': '89'}
print(dic['常鑫']) # 结果是[1,2,3]

dic = {"常鑫":[1,2,3],'李文虎': '89'}
print(dic['cx']) # 报错

其他操作

dic = {"1":3,"5":9,"李文虎":100}
for i in dic:
    print(i,dic.get(i)) # 获取所有键和值
  • dic.keys() : 把键获取到高仿列表里,支持for循环,不支持索引

print(list(dic.keys())) # 获取到列表

dic1 = {"1":3,"5":9,"李文虎":100}
print(dic.keys()) # 结果是:高仿列表—— dic_keys(['1','5','李文虎']) 

# 获取字典中所有的键
for i in dic.keys():
    print(i)
    
# 获取字典中所有的值
lst = []
for i in dic:
    lst.append(dic[i])
print(lst)
  • dic.values() :把值获取到高仿列表里,支持for循环,不支持索引

print(list(dic.values())) # 获取到列表

dic1 = {"1":3,"5":9,"李文虎":100}
# 获取字典中所有的值
print(list(dic.values())) # 结果是[3, 9, 100]
  • dic.items() : 把键和值组成的元组获取到高仿列表里,支持for循环,不支持索引

print(list(dic.items())) # 获取到列表

dic1 = {"1":3,"5":9,"李文虎":100}
print(dic.items())
# 结果是dict_items([('1', 3), ('5', 9), ('李文虎', 100)])

# 获取字典的键和值
for i in dic.items():
    print(i[0],i[1])

dic1 = {"1":3,"5":9,"李文虎":100}
for i in dic1.items():
    print(i)
# 结果是
('1', 3)
('5', 9)
('李文虎', 100)
    
for k,v in dic1.items():
print(k,v)    # 获取每个元素的键和值
# 结果是:
1 3
5 9
李文虎 100

解构

a, b = 10,12
print(a)
print(b) 
# 结果是 
# 10 
# 12

# 面试题
a = 10
b = 20
a,b = b,a
print(a,b) # 结果:20 10

a,b = [1,2] 
print(a,b)  
# 结果是 1 2

a,b = (3,4)
print(a,b)
 # 结果是: 1 2
    
a,b = "23"
print(a,b)  # 结果是: 2 3
   
工作之后可能会遇见
a,_,b = (3,4,5)
print(a,b)   # 等号后边的值和前面的变量名要一一对应

a = 10,12  # 本质就是一个元组
print(a)  # 结果是 (10,12)

a,b = {"1":"a","2":"b"}  # 得到的是键
print(a,b)  # 结果是 1 2

字典的嵌套

通过键一

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Ruby字符串(1):String基本用法 下一篇经典例题

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目