python 元组 与 字典

元组

使用圆括号创建元组

使用圆括号“()”创建元组,并将元组中的元素用逗号进行分隔。

当使用圆括号“()”创建元组时,如果元组中只包含一个元素,那么需要在该元素的后面添加逗号,从而保证Python解释器能够识别其为元组类型。

tu_one = ()                                     # 空元组
tu_two = (‘t’, ‘u’, ‘p’, ‘l’, ‘e’)        # 元组中元素类型相同
tu_three = (0.3, 1, 'python', '&',)    # 元组中元素类型不同

使用tuple()函数创建元组

当通过tuple()函数创建元组时,如果不传入任何数据,就会创建一个空元组;如果要创建包含元素的元组,就必须传入可迭代类型的数据。(可迭代类型数据可以是:字符串,列表,元组,集合,字典)

元组和列表一样可以使用索引访问单个元素,同样也是可以使用切片访问元组元素

tuple_demo = ('hello', 100, 'Python')
print(tuple_demo[0])
print(tuple_demo[1])
print(tuple_demo[2])


exam_tuple = ('h', 'e', 'l', 'l', 'o')
print(exam_tuple[2:5])

 

 我们在列表中使用index , count 在元组中同样适用。

index:从元组中找出某个对象第一个匹配项的索引位置, 如果不在元组中会报一个异常

count:计某个元素在元组中出现的次数

字典:

使用花括号“{}”创建字典时,字典的键(key)和值(value)使用冒号连接,每个键值对之间使用逗号分隔。

 

使用dict()函数创建字典:使用dict()函数创建字典时,键和值使用“=”进行连接。

 字典中的键是唯一的。当创建字典时出现重复的键——若使用dict()函数创建字典,提示语法错误;若使用花括号创建字典,键对应的值会被覆盖。

 学习编程无外乎是对数据增删改查:所以我们学习主要也是围绕增删改查。这里

# 字典的常用操作
# 1. 修改元素:字典可通过update()方法或指定的键修改元素。

modify_dict = {'stu1': '小明', 'stu2': '小刚', 'stu3': '小兰'}
modify_dict.update(stu2='张强')   	
modify_dict['stu3'] = '刘婷'       	
print(modify_dict) #{'stu1': '小明', 'stu2': '张强', 'stu3': '刘婷'}


# 2. 添加元素  变量名['键名'] = 值  如果这个键在字典中不存在,就会新增
d['tel'] = 123456
print(d)

# 3. 删除元素  del  clear pop popitem
# del 删除指定的元素
del d['id']
print('删除后:', d)

# del 删除整个字典
del d
print('删除后:', d)

# clear 清空整个字典
d.clear()
print('删除后:', d)

#pop()方法可以根据指定的键删除字典中的指定元素,若删除成功则返回目标元素的值。
per_info = {'001': '张三', '002': '李四', '003': '王五', '004': '赵六', }
per_info.pop('001')
print(per_info) #{'002': '李四', '003': '王五', '004': '赵六'}


#使用popitem()方法可以随机删除字典中的元素,若删除成功则返回目标元素。
per_info = {'001': '张三', '002': '李四', '003': '王五', '004': '赵六'}
per_info.popitem() 
print(per_info) #{'002': '李四', '003': '王五', '004': '赵六'}这里是随机删除可能会和你们不一样



# 4.字典常见操作2
# 4.1 len()  求长度
d2 = {'name': 'zs', 'id': 10, 'tel': 123}
li3 = [1, 2, 3, 4]
print(len(li3))
print(len(d2))

# 4.2 keys  返回字典里面包含所有键名的列表
print(d2.keys())
for i in d2:  # 只取出键名
    print(i)

# 4.3 values 返回字典里面包含所有值的列表
print(d2.values())
for i in d2.values():
    print(i)

# 4.4 items : 返回字典里面包含所有键值对(元组)的列表
print(d2.items())
for i in d2.items():
    print(i)

 这里附一个小程序:实现手机通讯录程序,该程序中具备添加联系人、查看/修改联系人信息以及删除联系人这些基本功能。

# 实际案例中,将删除查找联系人功能(index方法没有涉及)
person_info = []
print("=" * 20)
print('欢迎使用通讯录:')
print("1.添加联系人")
print("2.查看通讯录")
print("3.删除联系人")
print("4.修改联系人信息")
print("5.查找联系人")
print("6.退出")
print("=" * 20)
while True:
    per_dict = {}
    fun_num = input('请输入功能序号:')
    if fun_num == '1':
        per_name = input('请输入联系人的姓名:')
        phone_num = input('请输入联系人的手机号:')
        per_email = input('请输入联系人的邮箱:')
        per_address = input('请输入联系人的地址:')
        # 判断输入的是否为空
        if per_name.strip() == '':
            print('请输入正确信息')
            continue
        else:
            per_dict.update({'姓名': per_name,
                             '手机号': phone_num,
                             '电子邮箱': per_email,
                             '联系地址': per_address})
            person_info.append(per_dict)  # 保存到列表中
            print('保存成功')
    elif fun_num == '2':
        if len(person_info) == 0:
            print('通讯录无信息')
        for i in person_info:
            for title, info in i.items():
                print(title + ':' + info)
    elif fun_num == '3':  # 删除
        if len(person_info) != 0:
            del_name = input('请输入要删除的联系人姓名:')
            for i in person_info:
                if del_name in i.values():
                    person_info.remove(i)
                    print(person_info)
                    print('删除成功')
                else:
                    print('该联系人不在通讯录中')
        else:
            print('通讯录无信息')
    elif fun_num == '4':  # 修改
        if len(person_info) != 0:
            modi_info = input('请输入要修改联系人姓名:')
            for i in person_info:
                if modi_info in i.values():
                    # 获取所在元组在列表中的索引位置
                    index_num = person_info.index(i)
                    dict_cur_perinfo = person_info[index_num]
                    for title, info in dict_cur_perinfo.items():
                        print(title + ':' + info)
                    modi_name = input('请输入新的姓名:')
                    modi_phone = input('请输入新的手机号:')
                    modi_email = input('请输入新的邮箱:')
                    modi_address = input('请输入新的地址:')
                    dict_cur_perinfo.update(姓名= modi_name)
                    dict_cur_perinfo.update(手机号= modi_phone)
                    dict_cur_perinfo.update(电子邮箱= modi_email)
                    dict_cur_perinfo.update(联系地址= modi_address)
                    print(person_info)
        else:
            print('通讯录无信息')
    elif fun_num == '5':  # 查找
        if len(person_info) != 0:
            query_name = input('请输入要查找的联系人姓名:')
            for i in person_info:
                if query_name in i.values():
                    index_num = person_info.index(i)
                    for title, info in person_info[index_num].items():
                        print(title + ':' + info)
                    break
            else:
                print('该联系人不在通讯录中')
        else:
            print('通讯录无信息')

    elif fun_num == '6':  # 退出
        break

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖子是个潜力股

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值