'''
一,复习
元组 a = ()
列表 b = []
二,字典:存储方式 -key-value
1,创建
a = {"name":"zs","age":18}
2,为什么有键?
确定树
3,b = {(1):15}键值可以是字符串,数字,元组,不能是列表(列表可变)
4,键值不可相同 -- 相同会被覆盖
5,value值的类型-- 没有限制
6,操作 增删改查
for key in b.keys():
print(key)
b["tel"] = 138
b["tel"] = 139
del b["tel"]
#del b
print(b["age"])
print(b)
7,字典内置函数
a = {"a":"A"}
b = {"name":"林徽因","age":"15","sex":"女","a":[1,2,3,4]}
print(len(b))
print(str(b))
b = {"name":"林徽因","age":"15","sex":"女","a":[1,2,3,4]}
print("name" in b.keys())
8,排序
key 类型相同,自然顺序
d = {'a':1,'c':2,'b':4}
import operator
ds = sorted(d.items(),key = operator.itemgetter(0))
print(ds)
value 3
正常想要获取dict中的值,首先要知道key通过dict[key]获取对应的value,在散列中为了达到这种操作,
首先会计算key的hash值即散列值,把这个值最低的几位数字当作偏移量,在散列值里查找表元(
具体取几位,得看当前散列表的大小),若找到表元为空,异常keyerror ,不为空,
表元里会有一对 found_key:found_value。这时候Python会检验search_key == found_key是否为真,
如果它们相等,会返回found_value。如果两个值不匹配,则是三列冲突,
而散列本身的索引又只依赖于这个数字的一部分,为了解决散列冲突,算法会在散列值中另外再取几位
,然后用特殊的方法处理一下,把新得到的数字再当作数字来寻找表元。若这次找到的表元是空的,
则同样抛出keyerrot,若非空,或者键匹配,则返回这个值,或者又发现了散列冲突,则重复以上的步骤
'''
#6
#b = {"name":"林徽因","age":"15","sex":"女","a":[1234]}
'''
print(b.keys())
print(b.values())
print(b.items())
for key,value in b.items():
print(key,value)
else:
print("yuiop")
'''
'''
print(b.get("name"))
b.pop("age")
print(b)
'''
'''
b.update({"name":"Cora","age":101})
print(b)
'''
'''
a = b.copy()
print(id(a["a"]))
print(id(b["a"]))
'''
'''
b.clear()
print(b)
'''
'''
b.popitem()
print(b)
'''
#d = {'a':1,'b':4,'c':2}
#ds = sorted(d.items(),key = lambda x:x[1],reverse = False)
#import operator
#ds = sorted(d.items(),key = operator.itemgetter(1))
#f = zip(d.values(),d.keys())
#ds = sorted(f)
#print(ds)
'''
#58267
#58267
#25867
def insertSorted(list):
for i in range(1,len(list)):
temp = list[i]
flag = False
for j in range(i-1,-1,-1):
if list[j] > temp:
list[j+1] = list[j]
else:
list[j+1] = temp
flag = True
break
if not flag:
list[0] = temp
a = [5,8,2,6,7]
insertSorted(a)
print(a)
'''
'''
def insertSorted(list):
for i in range(1,len(list)):
temp = list[i]
leftindex = i - 1
while leftindex >= 0 and list[leftindex] > temp:
list[leftindex + 1] = list[leftindex]
leftindex -= 1
list[leftindex + 1] = temp
a = [5,8,2,6,7]
insertSorted(a)
print(a)
'''
字典及插入排序
最新推荐文章于 2023-07-17 14:40:01 发布