Python学习6

本文详细介绍了Python中的元组和字典数据类型。对于元组,讲解了定义、访问、常用操作,包括元素访问、遍历、切片、加法操作等,并演示了元组的不可变特性。而对于字典,介绍了定义、访问值、常用操作,如通过键访问、增加、删除元素,以及遍历字典的各种方式。此外,还展示了如何将其他类型对象转换为元组和字典。
摘要由CSDN通过智能技术生成

python学习6

数据类型

元组

在这里插入图片描述

1. 元组的定义与访问
  • 元组的定义
#创建空元组

tup1 = ()
#元组的定义
tup1 = (50)     #不加逗号,类型为整型
print(type(tup1)) #<class 'int'>

tup1 = (50,)    #加逗号,类型为元组
print(type(tup1)) #<class 'tuple'>

另外一种写法:

tup1 = (50,60,70,80.0,"abc",True,50)
print(tup1,type(tup1))

tup1 = 50,60,70 #小括号可以省略
tup1 = 50,      #建议加上括号,避免和数值混淆
print(tup1,type(tup1))
2. 常用操作
操作名称操作方法举例
访问元组中的元素通过下标直接访问print(tuple1[0])
遍历元组通过for循环for i in tuple1: print(i)
元组的切片使用[: :]tuple1[2:5:2]
元组的加法操作+tuple3 = tuple1 + tuple2

增:(连接)

tup1 = (12,34,56)
tup2 = ("abc","def")

tup = tup1 + tup2
print(tup,type(tup))    #(12, 34, 56, 'abc', 'def') <class 'tuple'>

删:(删除的是元组对象,而不是元素)

tup1 = (12,34,56)
print(tup1)
del tup1
print("删除后:")
print(tup1) #删除元组后,再次访问会报错  NameError: name 'tup1' is not defined

改:(不能修改)

tup1 = (12,34,56)
tup1[0] = 1
print(tup1[0]) #报错
#tuple里面的可变元素,元素内的内容可以更改
mylist = ["A","B"]
tup1 = (10,20,30,mylist)
print(tup1)
tup1[-1].append("C")
print(tup1)

查:

操作名称操作方法举例
元组成员关系in2 in list1
得到重复元素数量counttuple1.count(1)
操作名称操作方法
获取元组长度len()
获取元组元素最大值max()
获取元组元素最小值min()
将元组各元素求和sum()
其它类型对象转换成元组tuple()
#切片
tup1 = ("abc","def",2020,2030,333,444,555,666)

print(tup1[0])      #abc
print(tup1[-1])     #访问最后一个元素 666
print(tup1[1:5])    #左闭右开,进行切片 ('def', 2020, 2030, 333)

tup = (1,2,3,4,5,6,7,3,3,3) #元组的元素内容可以重复

for i in tup:
    print(i)

#包含 in,not in
if 3 in tup:
    print("True")
else:
    print("False")

#计数  count
print(tup.count(3))
tup = (1, 2, 3, 4, 5, 6, 7, 3, 3, 3)

#最大/最小/求和/个数  max、min、sum、len
print("元组中最大的元素:", max(tup))
print("元组中最小的元素:", min(tup))
print("元组中各元素的和:", sum(tup))
print("元组中元素的个数:", len(tup))


#强制类型转化 tuple()
#强制类型转化:字符串
s = "IT大神"
tup = tuple(s)
print(tup,type(tup)) #('I', 'T', '大', '神')

#B强制类型转化:列表
list1 = ["a","b","c"]
tup = tuple(list1)
print(tup,type(tup))

#生成器对象 (了解)
s = (x*2 for x in range(5))
print(tuple(s))

字典

在这里插入图片描述

1. 字典的定义

变量info为字典类型:

info = {}   #定义一个空字典
info = {"name":"张三","age":18,("aa"):[1,2]}
print(info,type(info))

说明:

  • 字典和列表一样,也能够存储多个数据
  • 列表中找某个元素时,是根据下标进行的
  • 字典中找某个元素时,是根据’名字’(就是冒号:前面的那个值,例如上面代码中的’name’、‘age’、(“aa”)
  • 字典的每个元素由2部分组成,键:值。例如 ‘name’:‘班长’ ,'name’为键,'班长’为值

使用列表创建字典【fromkeys】

namelist = ["张三","李四","王五"]
#dic1 = {}.fromkeys(namelist)     #以列表中的元素内容作为键,创建字典;值默认为None

dic1 = {}.fromkeys(namelist,"帅") #可以设定统一的默认值
dic1 = {}.fromkeys(namelist,["帅","好看","漂亮"])    ##无法逐一设置不同的默认值

print(id(dic1["张三"]),id(dic1["李四"]),id(dic1["王五"])) ##dic中的每个键都被指向了同一个地址空间

print(dic1)
2. 根据键访问值
info = {"name":"张三","age":18}
print(info["name"]) #获取姓名
print(info["age"])  #获取年龄

#print(info['sex'])     #获取不存在的key,会发生异常,错误类型位:KeyError
print(info.get('sex'))  #获取不存在的key,获取到空的内容,不会出现异常

print(info.get("age","20"))     #找到键的情况下,修改键对应的值
print(info.get("gender","m"))   #没有找到,可以设定返回的默认值
3. 常用操作:
操作名称操作方法举例
访问字典中的元素(1)通过key访问,key不存在会抛出异常print(dict1[“小明”])
访问字典中的元素(2)通过get方法,不存在返回None,不抛出异常print(dict1.get(“”小明))
遍历字典(1)通过for循环,只能获取keyfor key in dict1:
print(key, dict1[key])
遍历字典(2)配合items方法,获取key和valfor key, val in dict1.items(): print(key, val)
直接获取所有key和value使用keys和values方法print(dict1.values())
print(dict1.keys())
修改val直接通过key修改dict1[‘小明’] = 2003
新增键值对直接新增dict1[‘小李’] = 2005
#增
info = {"name":"张三","age":18}
newID= input("请输入新的学号:")
info["id"] = newID
print(info["id"])
操作名称操作方法举例
字典元素的删除通过key删除del dict1[“小明”]
字典元素的弹出通过pop方法dict1.pop(“小李”)
判断key是否存在in“key” in dict1
合并字典updatedict1.update(dict2)
把两个列表转为字典dict+zip方法dict(zip(list1,list2))
把一个嵌套列表转为字典dict方法dict2 = dict([[‘key1’, ‘value1’]])
清除字典内的元素clear方法dict1.clear()
#删:[del]
info = {"name":"张三","age":18}
del info["name"]
print(info) #{'age': 18}

print(info["name"]) #删除了指定键值对后,再次访问会报错 KeyError: 'name'


info = {"name":"张三","age":18}
del info    #删除字典对象
print(info) #name 'info' is not defined

#删:[clear]  清空
info = {"name":"张三","age":18}
info.clear()
print(info) #{}

#删:[pop] [popitem]
info = {"name":"张三","age":18,"性别":"男"}
gender = info.pop("性别")         #通过键,删除指定的键值对:会返回删除的键值对的值
gender = info.pop("gender")      #删除一个不存在的键:会报错:KeyError
gender = info.pop("gender","不存在该键") #删除一个不存在的键,会报错:没有找到指定键可以返回默认值

gender = info.popitem() #删除最后一个键值对,返回的是:元组类型
gender = info.popitem()
print(type(gender),info)

#查:遍历
info = {"name":"张三","age":18}
for i in info:  #默认或得到的就是字典的"键"
    print(i)

print(info.keys(),type(info.keys()))        #得到所有的键(可迭代对象),可以理解为:列表
print(info.values(),type(info.values()))    #得到所有的值(可迭代对象),可以理解为:列表
print(info.items(),type(info.items()))      #得到所有的项(可迭代对象),#可以理解为:每个键值对是一个元组

#遍历所有的键
for key in info.keys():
    print(key)
for value in info.values():
    print(value)

#遍历所有的键值对
for key,value in info.items():
    print(f"key={key},value={value}")

#扩展:使用枚举函数,同时拿到列表中的下标和元素内容
mylist = ["a","b","c","d"]
# print(type(enumerate(mylist)))
for i,x in enumerate(mylist):
    print(i+1,x)
操作名称操作方法举例
获取字典长度len()
获取最大的keymax()
获取最小的keymin()
其它类型对象转换成字典dict()dict([(1, 2), (2, 3)])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值