python学习06

元组和字典

1.元组

元组和列表相似,不同之处在于元组的元素不能被修改,元组使用小括号。

创建元组只需在括号中添加元素,并使用逗号隔开,注意,当元组中只有一个元素时,后面需添加一个逗号,否则会被当做运算符使用。

tup1=('python','hello',2000)
tup2=(2,)
tup3=()       #空元组
print(type(tup1))   得到<class 'tuple'>

元组的运算符

Python 表达式结果描述
len((1, 2, 3))3计算元素个数
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)连接
('Hi!',) * 4('Hi!', 'Hi!', 'Hi!', 'Hi!')复制
3 in (1, 2, 3)True元素是否存在
for x in (1, 2, 3): print (x,)1 2 3迭代

元组内置函数

序号方法及描述实例
1len(tuple)
计算元组元素个数。
>>> tuple1 = ('Google', 'Runoob', 'Taobao')
>>> len(tuple1)
3
>>> 
2max(tuple)
返回元组中元素最大值。
>>> tuple2 = ('5', '4', '8')
>>> max(tuple2)
'8'
>>> 
3min(tuple)
返回元组中元素最小值。
>>> tuple2 = ('5', '4', '8')
>>> min(tuple2)
'4'
>>> 
4tuple(seq)
将列表转换为元组。
>>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
>>> tuple1=tuple(list1)
>>> tuple1
('Google', 'Taobao', 'Runoob', 'Baidu')

字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

(1)访问字典

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
#输出得到
dict['Name']:Runoob

(2)修改字典

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict['Age']=8
print (dict)
#得到
{'Name': 'Runoob', 'Age': 7, 'Class': 'First','Age':8}

(3)删除字典元素

能删单一的元素也能清空字典

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict['Name'] # 删除键 'Name'
dict.clear()     # 清空字典
del dict         # 删除字典

但这会引发一个异常,因为用执行 del 操作后字典不再存在

(4)字典键的特性

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

Python字典包含了以下内置方法:

序号函数及描述
1radiansdict.clear()
删除字典内所有元素
2radiansdict.copy()
返回一个字典的浅复制
3radiansdict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4radiansdict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
5key in dict
如果键在字典dict里返回true,否则返回false
6radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组
7radiansdict.keys()
以列表返回一个字典所有的键
8radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里
10radiansdict.values()
以列表返回字典中的所有值
11pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12popitem()
随机返回并删除字典中的一对键和值(一般删除末尾对)。

练习:

将上次的通讯管理系统修改为字典模式:

phones={'1399413914':'帅比'}
while True:
    print('== == == =通讯录管理系统 == == == =')
    print('1.增加姓名和手机')
    print('2.删除姓名')
    print('3.修改手机')
    print('4.查询所有用户')
    print('5.根据姓名查找手机号')
    print('6.退出')
    print('== == == == == == == == == == == == == ==')

    i=int(input('请选择:'))

    if i==1:
        name=input('请输入姓名:')
        phone=input('请输入电话号码:')
        while phone in phones.keys():
            phone=input('电话号码已存在,请重新输入:')
        phones[phone]=name
        print('收录完成')

    elif i==2:
        name=input('请输入要删除的姓名:')
        for item in phones.items():
            if item[1].__eq__(name):
                phones.pop('name')
                print('删除成功')
        else:
            print('您删除的姓名不存在')

    elif i==3:
        phone=input('请输入要修改的手机号码:')
        if phone in phones.keys():
            phone1 = input('请输入修改后的手机号:')
            while phone1 in phones.keys():
                phone1=input('您输入的手机号已存在,请重新输入:')
            a=phones.pop(phone)
            phones[phone1]=a
            print('修改成功')
        else:
            print('您要修改的手机号不存在,请重新输入')

    elif i==4:
        for a,b in phones.items():
            print('姓名:'+str(b)+' '+'电话:'+str(a))

    elif i==5:
        name=str(input('请输入要查找的姓名:'))
        if name in phones.values():
            for j in phones.items():
                if j[1].__eq__(name):
                    print('您查找的手机号为:',j[0])
        else:
            print('您输入的姓名有误')

    elif i==6:
        print('谢谢使用')
        break





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值