python中的字典详解

1.字典(Dictionary)的定义

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中
格式所示:d = {key1 : value1, key2 : value2 }
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
字典是一个无序的数据集合
通常输出的顺序和定义的顺序不一致

2.字典的创建

users = ['user1','user2']
passwds = ['123','456']
print(zip(users,passwds))
print(list(zip(users,passwds)))
print(dict(zip(users,passwds)))

运行结果:
在这里插入图片描述

s = {}
print(s,type(s))

在这里插入图片描述
字典:是以key 和value 即键值对的形式存在的

s = {
    'linux':[100,99,89],
    'python':[90,99,100]
}
print(s,type(s))

工厂函数

d = dict()
print(d,type(d))
d = dict(a=1,b=2)
print(d,type(d))

结果:
在这里插入图片描述
字典的嵌套

student = {
    123:{
        'name':'tom',
        'age':18,
        'score':99
    },
    456:{
        'name':'lily',
        'age':18,
        'score':89
    }
}
print(student)
print(student[123]['score'])

结果:
在这里插入图片描述

3.字典的特性

d = {
    '1':'a',
    '2':'b'
}
print(d['1'])

在这里插入图片描述
字典不支持切片

成员操作符 针对的是key

print('1' in d)
print('a' in d)

在这里插入图片描述
for循环字典 针对的是key

for key in d:
    print(key)

在这里插入图片描述

4. 遍历字典

for key in d:
print(key,d[key])
在这里插入图片描述

5.字典元素的添加

service = {
    'http':80,
    'ftp':23,
    'ssh':22
}
"""
增加一个元素
如果key值存在 则更新对应的value
如果key不存在 则添加对应的value
"""
service['https'] = 443
print(service)
service['ftp'] = 21
print(service)

结果:
在这里插入图片描述

service_backup = {
   'tomcat':8080,
    'mysql':3306
}
service.update(service_backup)
print(service)
service.update(dns=53)
print(service)

结果:
在这里插入图片描述
如果成员不在字典中,则会输出None

print(service.get('nfs'))

在这里插入图片描述

# 如果key值存在 则不做修改
# 如果key值不存在 则添加对应的值
service.setdefault('http',9090)
print(service)   #不做修改
service.setdefault('oracle',44575)
print(service)  #添加

结果:
在这里插入图片描述

6.字典元素的删除

service = {
    'http':80,
    'ftp':23,
    'ssh':22

}
# pop删除指定的key对应的value值
item = service.pop('http')
print(item)
print(service)

在这里插入图片描述

# 删除最后一个k-v (k,v)
a = service.popitem()
print(a)
print(service)

# 清空字典内容
service.clear()
print(service)

在这里插入图片描述
7.字典元素的查看

service = {
    'http':80,
    'ftp':23,
    'ssh':22

}

# 查看字典中所有的key值
print(service.keys())
# 查看字典中所有的value值
print(service.values())
# 查看字典中的k-v
print(service.items())

# print(service['https'])
print(service.get('https'))
print(service.get('https',443))

结果:
在这里插入图片描述
eg:
数字重复统计:
1). 随机生成1000个整数;
2). 数字的范围[20, 100],
3). 升序输出所有不同的数字及其每个数字重复的次数;

#对生成好的1000个数进行排序,然后添加到字典中

import random
all_num = []
for item in range(1000):
    all_num.append(random.randint(20,100))
print(all_num)
# 对生成好的1000个数进行排序,然后添加到字典中
sorted_num = sorted(all_num)
#print(sorted_num)
num_dict ={}  #定义一个字典

for num in sorted_num:
    if num in num_dict:    #判断num_dict 中的key是否存在num
        num_dict[num] = num_dict[num] + 1   #如果key值存在则更新对应的value
    else:
        num_dict[num] = 1   #如果key不存在 则添加对应的value

print(num_dict)

eg2:
重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
# 1. 用户输入一句英文句子;
# 2. 打印出每个单词及其重复的次数;

#1.把每个单词分割处理
s = input('s:')
s_li = s.split()
print(s_li,type(s_li))
word_dict ={}

for item in s_li:
    if item not in word_dict:
        word_dict[item] = 1
    else:
        word_dict[item] += 1
print(word_dict)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值