python——字典

一、字典的定义

users = ['user1','user2']
passwd = ['123','456'] 
print('以列表的形式输出:',list(zip(users,passwd)))
print('以字典的形式输出:',dict(zip(users,passwd))) 

# 定义空字典
s = {}
print('输出定义的空字典为:',s) 

# 字典:key-value键值对应,value值可以是任意数据类型
s= {    'linux':[100,99,88],    'westos':[21,43,65]}
print('输出s重定义的元素:',s)
print('输出类型为:',type(s)) 

# 工厂函数
d = dict()  # 定义空工厂函数
print('输出定义的工厂函数d:',d)
print('查看工厂函数d的类型:',type(d)) 
d1 = dict(a=1,b=2)
print('输出定义的工厂函数d1:',d1)
print('查看工厂函数d1的类型:',type(d1))

在这里插入图片描述

二、字典的嵌套

students = {    
           '07161001':{        
                'name':'lala',        
                'age':18,        
                'score':88    
            },    
            '07161002':{        
                'name': 'haha',        
                'age': 19,        
                'score':77    
            }
          }
# 输出学号为07161001对应学生的姓名
print(students['07161001']['name'])
# 输出学号为07161002对应学生的成绩
print(students['07161002']['score']) 
# 所有的key和value值是一样的情况
print({}.fromkeys({'1','2'},'07161001'))

在这里插入图片描述

三、字典的特性

d= {    '1':'a',    '2':'b'}

# 成员操作符
print( '1' in d)        # 判断 1 是否在d字典中
print('1' not  in d)    # 判断 1 是否不在d字典中 

# for循环,默认遍历的是字典的key
for key in d:    
    print(key) 
    
# 遍历字典
for key in d:      
    print(key,d[key])             # 遍历字典中的key值,并输出key值对应的键值
    
for key,value in d.items():   # 遍历key值和键值    
    print(key,value)          # 输出key和键值	

在这里插入图片描述

四、字典的增删改查

(1)字典的增加
# 添加一个元素
service = {    'http':80,    'ftp':21,}
service['mysql'] = 3306
print(service)
service['http'] = 443
print(service) 

# 添加多个元素
service_backup = {    'https':443,    'tomcat':8080,    'http':8080}

# 把service_backup中的元素添加到service中
service.update(service_backup)
print(service) 

service.update(flask=9000,http=8000)
print(service) 

# 用setdefault添加key值
# 添加规则如下:
# (1)如果key值存在,不做修改
# (2)如果key值存在,则添加对应的key-value值 

service.setdefault('http',8888)
print(service) 

service.setdefault('oracle',44575)
print(service)

在这里插入图片描述

(2)字典的删除(通过key值来删除value值)

删除:通过key值来删除value值

service = {    'http':80,    'ftp':21,    'ssh':22}

# del:删除指定key的key-value,如果key不存在,报错
del service['http']
print(service) 

在这里插入图片描述

# pop删除指定key的key-value
# 如果key存在,删除,并且返回删除key对应的value
# 如果key不存在,报错

item = service.pop('http')
print(item)
print(service)

在这里插入图片描述

# popitem删除最后一个key-value值
item = service.popitem()
print('删除的key-value对是:',item)
print('查看剩余的',service)

在这里插入图片描述

# 清空字典内容
service.clear()
print('查看字典内容:',service)

在这里插入图片描述

(3)字典的查看
service = {    'http':80,    'ftp':21,    'ssh':22}
	
# 查看字典的key值
print(service.keys()) 

# 查看字典的value值
print(service.values()) 

# 查看key的value值;key不存在,报错
# print(service['https']) 

# 查看key的value值
# key不存在,默认返回None
# key不存在,有default,则返回default

print(service.get('https',443))
print(service.get('https'))

# 遍历
# for k,v in service.items():
#     print(k,'--->',v)
# print(service['https'])
if 'https' in service:    
   print(service['https'])
else:    
    print('key not exist')
 
# get方法获取指定key对应的value值
# 如果key值存在,返回对应的value值
# 如果key值不存在,默认返回None,如果需要指定返回值,传值即可

print(service.get('https','ket not exist'))

在这里插入图片描述

五、字典的练习

1、统计重复数字数字重复统计:

(1)随机生成1000个整数;
(2)数字范围[20,100];
(3)升序输出所有不同的数字及其每个数字重复的次数

import random
a=[]
for i in range (1000):  # range控制数字的个数    
    # 把随机生成的数字存放在a列表里    
    a.append(random.randint(20,100))    # random.randint控制数字的取值 
# 对生成1000个数字进行排序,并加入到字典里
sorted_num=sorted(a)
dic  = {}
for j in sorted_num:    
    if j in dic:        
        dic[j] += 1    
    else:        
        dic[j] = 1
print(dic)

在这里插入图片描述

2、统计重复单词

重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;

# 1. 用户输入一句英文句子;    
# 2. 打印出每个单词及其重复的次数;  "hello java hello python"
# hello 2
# java 1
# python 1 

a= input('请输入单词:')
b=a.split(' ')
c={}            # 存放输入字符串和次数的数组
for i in b:     # 遍历列表b    
    if i in c:  # 统计列表b中的字符出现的次数,存放在字典c中        
        c[i]+=1    
    else:        
        c[i]=1print(c)

在这里插入图片描述

3、生成随机银行卡号

1、随机生成100个卡号; 卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100>),
2、生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat"
3、 输出卡号和密码信息, 格式如下:
卡号:6102009001 密码:redhat

a=[]
import random
for i in range(100):    
    a.append('6102009%.3d' %(i+1))
    b={}.fromkeys(a,'redhat')
    print('卡号\t\t\t  密码')
    for key,value in b.items():
        print(key,'\t',value)

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值