Python 初阶学习之字典练习(五)

共计 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)
正文完
 0
caoguojian
版权声明:本站原创文章,由 caoguojian 于2022-04-12发表,共计2442字。
转载说明:除特殊说明外本站文章皆由CGJ发布,转载请注明出处。
一言一句话
-「
评论(没有评论)