元组和字典

一.元组
1.与列表类似,区别在于:①元组用小括号()定义,②元组的元素不能修改
2.操作:①交换变量的值
             ②元组的方法    .count() 和 .index()
             ③元组切片 和列表切片一样
             ④拆包和装包:拆包的元素,整型、字符串、列表均可;装包时均为列表


1.基础
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
# list
num_list = [123"4"]
 
# 元组 - tuple 与列表类似
# 区别:1.元组的元素不能修改 2.用()定义
tuple1 = ()         # 空元组
tuple2 = tuple()    # 空元组
info_tuple = ("张三"201.75)
print(type(tuple1), type(tuple2), type(info_tuple))
 
tuple3 = ("Alex")   # 不是元组,而是一个字符串,()表示调整优先级
print(type(tuple3))
tuple4 = ("Alex",)  # 表示元组只有一个元素


[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
# 元组元素不可变
# 需求:获得一个元组10个元素,每个元组都是1-10的随机数
import random
 
list1 = []
for in range(10):
    rand = random.randint(1,20)
    list1.append(rand)
 
print(list1, len(list1))
 
# 列表 转换成 元组,列表和元组可以互相转换
tuple1 = tuple(list1)   # list1 = list(tuple1)
print(tuple1)


2.操作
①交换
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
# 交换变量
= 1
= 2
# 法 1:
= a
= b
= c
# 法 2:
= + b
= - b
= - b
# 法 3:
# (b, a) = (a, b)   # 括号可以去掉
b, a = a, b
print(a, b)

②元组的方法    .count() 和 .index()
[Python] 纯文本查看 复制代码
1
2
3
4
5
6
# 元组中的方法 index() 和 count()
# index()   值->索引
# print(tuple1.index(1))
 
# count()   统计某个元素在元组中出现的次数
print(tuple1.count(2))


③元组切片
[Python] 纯文本查看 复制代码
1
2
# 通过元组切片 查看元素
print(tuple1[5:])


④拆包和装包
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
# 整型 -> 列表
t1 = (2567963)
a, *b, c = t1   # *b表示要拆包,它不固定长度
print(a)
print(*b)   # type(*b)没有数据类型
print(c)
 
# *b——>b 装包为一个列表
 
# 字符串 ->列表
x, y, *= "hello"
print(z)
 
# 列表 -> 列表
x, y, *= ("niao""mao"8'aa''hello')
print(z)



二.字典
1.基础
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
# 字典 dict
dict1 = {}      # 空字典
dict2 = dict()  # 空字典
print(type(dict1),type(dict2))
 
tom ={
    "name""tom",
    "age"18,
    "height"180,
    "weight"75.0,
    "name"'TOM'
}
# 字典的元素是键值对 key: value
# 键是唯一的,键必须是数字、字符或元组,值可以是任意类型
# 字典是无序的,索引就是键
# 字典的键必须是唯一的,如果定义字典的时候,有相同键的 键值对,则会保留 后面的 键值对
print(tom)
 
# 通过键取值
print(tom['age'])



2.数据类型转换

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
# 列表 元组 字典  ————>字典
t1 = ("name""tom")    # 不能转成字典
list1 =[("name""tom"), ("age"18)] # 推荐:列表内元组转字典,里面的元组不会变,外面可以灵活
d1 = dict(list1)        # [(a,b),(c,d)]  a 和 c必须是数字、字符串或元组
print(d1)
 
t2 = (("name""tom"), ("age"18)) # 过于不灵活:元组内元组 转字典
d2 = dict(t2)
print(d2)
 
t3 = (["name""tom"], ["age"18]) # 元组内列表
d3 = dict(t3)
print(d3)
 
l4 = [["name","tom"],["age",18]]
d4 = dict(l4)
print(d4)



3.增加元素
[Python] 纯文本查看 复制代码
1
2
3
4
5
6
7
# 增:定义一个字典,通过增加键值对的形式,增加值
dict1 = {}
dict1["device_type"= "cisco"
print(dict1)
# 改:对索引重新赋值
dict1["device_type"= "huawei"
print(dict1)



4.字典新增元素案例
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 用户注册功能
# 填写 username,password,email,phone 完成注册
data_base =[]
while True:
    user_dict = {}
    user_dict['username'= input("请输入用户名:")
    user_dict['password'= input("请输入密码:")
    re_passwd = input("请再次输入密码")
    if re_passwd != user_dict['password']:
        print("两次输入的密码不一致,请重新输入!")
        continue
    user_dict['email'= input("请输入邮箱:")
    user_dict['phone'= input("请输入手机号码:")
 
    data_base.append(user_dict)
 
    ask = input("是否继续注册?(Y/N)")
 
    if ask.upper() =="N":
        print("程序退出!")
        break
 
print(data_base)


5.取值
[Python] 纯文本查看 复制代码
1
2
3
4
5
6
7
dict1 = {"张三"100,"李四"100,"王五"95,"老六"88}
# 根据字典的键取值
print(dict1["张三"])
 
for in dict1:     # i只是字典的键
    if dict1[i] > 90:
        print(i)



6.解封装 item(),values(), keys()
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# items() values() keys()
dict1 = {"张三"100,"李四"100,"王五"95,"老六"88}
result1 = dict1.items()
print(result1)
print(type(result1))
# items 类型可以转成列表, 与字典转列表不一样
list1 = list(result1)   # 键和列表都留下
print(list1)
 
list2 = list(dict1)     # 只留下键
print(list2)
 
# values                只留下值
result2 = dict1.values()
print(type(result2))
print(result2)
list3 = list(result2)
print(list3)
 
# keys                  只留下键
result3 = dict1.keys()
print(result3)
list4 = list(result3)
print(list4)

7.删除
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
# del 关键字
dict1 = {"张三"100"李四"100"王五"95," 老六"88}
del dict1['张三']
print(dict1)
 
# 也可以删整个字典
# del dict1
 
# pop() 要给键值才能删
dict1.pop("李四")
print(dict1)
 
var = dict1.pop("张三""这个键不存在")   # 只是不会报错,这句话并不会显现
print(dict1)                           # 要想显现,用 var接收
print(var)
 
 
# popitem 删字典键值对,后进先出
var1 = dict1.popitem()
print(dict1)
print(var1)
posted @ 2023-01-09 22:24  妖孽成佛  阅读(73)  评论(0)    收藏  举报