共计 2442 个字符,预计需要花费 7 分钟才能阅读完成。
#encoding: utf-8
#字典 大括号包括,key:value 格式,每个元素用逗号分开,无序
a = {'name' : 'cgj', 'age' : 28, 'address' : '上海'}
#改 根据 key 修改 value
# a['name'] = 'zhangsan'
# print(a)
#使用函数 update 修改多个 value,或者新增
b = {'name' : 'aaaaaaa','sex' : 'nan'}
a.update(b)
print(a)
#增 如果是不存在的 key,直接新增
a['sex'] = '男'
#使用函数 setdefault 设置默认值,如果 key 已经存在,就不设置,如果不存在就新增
# print(a.setdefault('sex','女'))
# print(a)
# #删 存在则删除,key 不存在则报错
# del a['sex']
#使用 pop 函数删除弹出 value,如果不存在返回设置的第二个值
# print(a.pop('name111','这个 key 不存在'))
# #查 访问不存在的 key,报错
# a['bbbbb']
#使用 get 函数,访问不存在的 key,返回 none
# print(a.get('bbbbb'))
# #访问不存在的 key,给他设置第二个返回值, 如果存在直接返回 value
# print(a.get('bbbbb','这个 key 不存在'))
# #查询所有 key 'dict_keys'
# print(a.keys())
# #查询所有 value
# print(a.values())
#转换
# #list 转 dict
# print(dict([('name','abc'),('age',20),('sex','nan')]))
# #dist 转 list
# print(list(a.items()))
#{'a': 'b', 'd': 'c'}
a = ['ab','dc']
print(dict(a))
# #遍历
aaa= {'name' : 'cgj', 'age' : 28, 'address' : '上海'}
#输出的是 key
# for i in aaa:
# print(i)
# #输出的 value
# for i in aaa:
# print(aaa[i])
#输出 key value
for key,value in aaa.items():
print(key,value)
#练习把 key 和 value 对调
dictTmp = {'aaa' : 'name', 23 : 'age'}
dictTmp_1 = {}
#1
for key , value in str.items():
dictTmp_1[value] = key
print(dictTmp_1)
#2
dictTmp_2=dict([val,key] for key,val in dictTmp.items())
print(dictTmp_2)
#练习 计算 list 中元素出现的次数,使用 key:value 保存
kemu = ['sshuxue','yuwen','tiyu','yingyu','sshuxue','yuwen','yuwen','tiyu','yingyu','yingyu','sshuxue','yuwen']
count = {}
for a in kemu:
#使用 get 函数,如果 key 不在,就返回 value 0,+ 1。。。如果在就返回 value + 1
#count[a] = count.get(a,0) + 1
#使用 setdefault 函数, 如果 key 不存在,就设置 value0,然后 value 自增加 1。。。key 存在就不变,设置 0
count.setdefault(a,0)
count[a] += 1
# if a in count:
# count[a] += 1
# else:
# count[a] = 1
print(count)
#练习 字符串中字母出现的次数,使用 key:value 保存
str1 = 'da,asdas fadASd.asfasf,sdfds asdasfasfa,AAAAv asdasda,a'
count = {}
for i in str1:
if i.isalpha() :
count[i] = count.get(i,0) + 1
# if i in count:
# count[i] += 1
# else:
# count[i] = 1
print(count)
#练习 对字典排序
str2 = 'sadsafmvoa mdoiasndand,safafawucna sdada AAasfev'
count = {}
for i in str2:
#使用 isalpha 函数判断是不是字母
if i.isalpha():
# 如果是字母,使用 get 函数查询当前字母 [i],字典 count 中不存在就设置 value 第二返回值 0,+1。。如果 count 已经存在就返回 i 的第一返回值 value + 1。最后赋值给 count[i]
count[i] = count.get(i,0) + 1
#转换成 list
letter = list(count.items())
#对 value 值冒泡排序
num = len(letter)
for x in range(num - 1):
for j inrange(num -1):
if letter[j][1] < letter[j + 1][1]:
letter[j],letter[j + 1] = letter[j + 1],letter[j]
# temp = letter[x]
# letter[x] = letter[j]
# letter[j] = temp
#转成字典
print(dict(letter))
#练习 对字典排序
user1 = [{'id' : 8, 'name' : 'zhangsan'},{'id' : 2, 'name' : 'lisi'},{'id' : 1, 'name' : 'wanger'},{'id' : 6, 'name' : 'mazi'}]
#对 value 值冒泡排序
num = len(user1)
for x in range(num - 1):
for j inrange(num -1):
if user1[j]['id'] > user1[j + 1]['id']:
user1[j],user1[j + 1] = user1[j + 1],user1[j]
print(user1)
正文完