小甲鱼26、27---字典

本文介绍了Python中字典、列表和元组的数据结构,重点讲解了字典的创建、访问及操作,包括fromkeys、clear等方法。通过一个简单的通讯录系统实现,展示了字典在实际应用中的使用,包括添加、查询和删除联系人信息。同时,文章还探讨了字典的特性,如键值对的唯一性、哈希存储以及成员资格操作符的效率优势。
摘要由CSDN通过智能技术生成

字典—大括号
列表–中括号
元组–逗号,小括号
字典是映射类型,列表和元组是序列类型

>>> brand=['李宁','耐克','阿迪']
>>> slogan=['一切皆有可能','just do it','impossible is nothing']
>>> print('李宁的口号是',slogan[brand.index('李宁')])

创建和访问字典:

>>> dict1={'李宁':'一切皆有可能','耐克':'just do it','阿达':'impossible is nothing'} #李宁 一切皆有可能是项,李宁是键,一切皆有可能是项
>>> print('李宁的口号是:',dict1['李宁'])

访问字典:

dict1[李宁]

创建一个空的字典:

dict1={}

dict常用
在这里插入图片描述
在这里插入图片描述
字典的内建方法
fromkeys:创建并返回新的字典,有两个参数,一个是键值,一个是可选的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
清空一个字典的方法:clear()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
课后题
1.当停到小伙伴讨论“映射”、“哈希”、“散列”、“关系数组”的时候,事实上是在讨论什么?
字典
2.尝试一下将数据(‘F’:70,‘C’:67,‘h’:104,‘i’:105,‘s’:115)创建一个字典并访问键‘C’对应的值?

>>> dict1={'F':70,'C':67,'h':104,'i':105,'s':115}
>>> print('C对应的值是:',dict1['C'])
C对应的值是: 67

3.用[]括起来的叫列表,那么用{}括起来的叫字典对吗?
不对,因为字典也可以用其他方式表示,如果有大括号没有映射关系,这也不叫字典
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

print('---欢迎进入通讯率系统---')
print('---1:查询联系人资料---')
print('---2:插入新的联系人---')
print('---3:删除已有联系人---')
print('---4:退出通讯录程序---')
dict1={'小甲鱼':'020-0090909','小傻蛋':'080-2334234'}
while 1:
    temp = int(input('请输入相关的指令代码:'))
    if temp==1:
        name1=input('请输入联系人姓名:')
        if name1 in dict1:
            print(name1+':'+dict1[name1])
        else:
            print('没有此用户')
    if temp==2:
        name2=input('请输入联系人姓名:')
        tel=input('请输入用户联系电话:')
        if name2 in dict1:
            print('您输入的名字已在系统中存在-->',end='')
            if input('是否修改用户资料(NO/YES):')=='YES':
            #如果字典中有值,就会修改对应的值,如果没有值,就会添加该键值对
                dict1[name2]=input('请输入用户联系电话')
                print('修改成功')
            else:
                continue
        else:
            a={name2:tel}
            dict1.update(a)
            print('插入成功')
    if temp==3:
        name3=input('请输入联系人姓名:')
        if name3 in dict1:
            dict1.pop(name3)
        else:
            print('用户不存在')
    if temp==4:
        break

5.Python的字典是否支持一个键多个值?
不支持,对相同的键再次赋值会将上一次的值直接覆盖
6.在字典中,如果试图为一个不存在的键赋值会怎样?
会自动创建对应的键并添加进相应的值进去
7.成员资格操作符可以检查一个元素是否存在序列中,当然也可以用来检查一个键是否存在字典中,请问哪种的检查效率更高?
字典的原理是使用哈希算法存储,一步到位,不需要使用查找算法进行匹配,因此时间复杂度是o(1),效率高
8.Python对键和值有没有类型限制?
有,要求他们必须是哈希对象,不能是可变类型
在这里插入图片描述
{1 :’数字‘ 3: ’数字’}

10.把 dict1 ={1:‘one’,2:‘two’,3:‘three’}复制到dict2中去怎么操作?

dict1={1:'one',2:'two',3:'three'}
dict2={}
dict2=dict1.copy()
print(dict1)
print(dict2)

在这里插入图片描述

user_data={}
def new_user():
    promt='请输入用户名:'
    while True:
        name=input(promt)
        if name in user_data:
            promt='此用户名已经被用,请重新输入:'
            continue
        else:
            break
    passwd=input('请输入密码:')
    user_data[name]=passwd
    print('注册成功,赶紧登陆试试')
def old_user():
    prompt='请输入用户名:'
    while True:
        name=input(prompt)
        if name in user_data:
            prompt='您输入的用户名不存在,请重新输入:'
            continue
        else:
            break
    passwd=input('请输入密码:')
    pwd=user_data.get(name)
    if passwd==pwd:
        print('欢迎进入本系统')
    else:
        print('密码错误')
print('---新建用户:N/n---')
print('---登录账号:E/e---')
print('---退出程序Q/q---')
while 1:
    word=input('请输入指令代码:')
    if word not in 'NnEeQq':
        print('您输入的代码有误,请重新输入')
    if word=='q' or word=='Q':
        break
    if word=='n' or word=='N':
        new_user()
    if word=='e' or word=='E':
        old_user()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值