Python中的tuple元组和dict字典的用法

1.tuple元组

(1)元组的基本知识

a)概念:是一种有序的集合

b)元组和列表的区别:

格式: 元组:(),列表:[ ];

列表中的元素可以进行增加和删除操作,但是,元组中的元素不能进行修改

c)元组和列表的相同点:

都是一种容器,都可以同时存储不同类型的数据

(2)元组的创建

创建空列表:list1 = []

创建有元素的列表:list1 = [元素1,元素2,,,,]

创建空元组:tuple = ()

创建有元素的元组:tuole = [元素1,元素2,,,,]

注意:和列表类似,在元组中可以存储重复元素,同时存储不同类型的数据;

           当元组中只有一个元素,tuple1 = (10)等价于tuple1 = 10,为了消除歧义,添加逗号如:tuple1 = (10,)

(3)元组的访问

获取值:语法如:元组名称[索引]

#1.创建空元组
tuple1 = ()

#2.创建带有元素的元组
tuple2 = (10,20,30)

#1.获取元组值
tuple1 = (10,20,30,40,50)
print(tuple1[1])
#法一:获取元组中的最后一个值:从前向后获取
print(tuple1[4])
#法二:获取元组中的最后一个值:从后向前获取,-1表示最后一个元素
print(tuple1[-1])

#2.修改元素值:不支持元素的修改,指的是不能更改地址,可以修改内容,此处特殊情况
tuple2 = (1,3,43,5,[54,54,5])
print(tuple2)
list1 = tuple2[4]
list1[1] = 100
print(tuple2)

#3.删除元组
del tuple2

 

(4)元组的操作

组合:tuple1 + tuple2

重复:tuple1 * 3                         #注意:组合和重复都是生成了一个新的元组,原来的元组不发生任何改变

判断元素是否在元组中:in 和 not in

元组截取【切片】:tuple1[2:4]    #截取2到4的元素,包前不包后,包头不包尾

                                 tuple1[2:]      #截取索引为2以后的元素,包括元素2

                                 tuple1[:4]      #截取从开头到4的元素,不包括元素4

获取元组中元素的个数: len(tuple1)

获取元组中元素的最大值和最小值: max(tuple1)和min(tuple1)

元组和列表之间的相互转换:取长补短,转换前后不是以前的元组了

list1 = list(tuple1)
tuple2 = tuple(list2)

遍历元组:

a)直接遍历元素

for element in tuple1:
    print(element)

 b)遍历索引:本质上遍历的是列表

for i in range(len(tuple1)):
    print(tuple1[i])

c)同时遍历索引和元素

for i,element in enumerate(tuple1):
    print(i,element)

(5)二维元组 :当做一维元组处理

tuple1 = ((5,54,5,45),(5,6,46,56),(6,6,6,5))
print(tuple[1][1])

二维元组的遍历:嵌套循环

for subTuple in tuple1:
    for element in subTuple:
        print(element)

2.dict字典

(1)字典dict的基本知识

a)概念:查询学生成绩,将学生作为key,将成绩作为value进行村塾,方便查找【一一对应】

b)本质:也是一种存储数据的容器

c)特点:数据以键值的形式存储,具有快速查找的优势

注意:字典是无序的,键重要,值跟着键走。

键值的特点:字典中的key必须是唯一的、字典中的key必须是不可变的(如:tuple,数字型和字符串)

(2)字典的访问

a)创建:语法:字典名称 = {key1:value1,key2:value2,,,,,}

#1.创建空字典
dict1 = {}

#2.创建有键值对的字典
dict2 = {"zhangsan":60,"jack":90}
print(dict2)

b)获取:通过Key获取Value

dict3 = {"zhangsan":60,"jack":90,"tom":80}
#通过key获取value
score = dict3["jack"]
print(score)

注意:如果key不存在,则通过get功能,返回None,程序不会报错

result = dict3.get("lisi")
print(result)
if result == None:
    print("lisi不存在的")
else
    print("存在")

(4)字典的操作

a)添加:如果键值存在,则dict3["jack"] = 100,表示给此键值增添元素

                如果键值不存在,则dict3["bob"] = 75,表示增加键值对

b)删除:删除指定的key,则对应的value也会随之删除,如:dict3.pop["tom"]

c)遍历

dict1 = {"zhangsan":60,"jack":90,"tom":80}

#1.获取key
for key in dict1:
    value = dict1[key]
    print("%s = %d"%(key,value))

#2.只获取value
#注意:将所有的value重新生成一个列表
list1 = dict.values()
for value in list1:
    print(value)

#3.获取key:dict.keys()
for i,key in enumerate(dict1):
    print(i,key)
    print(dict1[key])

#4.同时获取value和key,python中特有
for key,value in dict1.items():
    print(key,value)

练习:

1.逐一显示指定字典中的所有的键,并且显示结束之后输出总键数

#1.逐一显示指定字典中的所有的键,并且显示结束之后输出总键数
num = 0
dict1 = {"x":1,"y":2,"z":3}
for key in dict1:
    num += 1
    print(key)
print(num)

for key in dict1.keys():
    print(key)
print(len(dict1))

2.list1 = [0,1,2,3,4,5,6],list2 = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],以list1中的元素作为key,list2中元素作为value,生成一个新的字典dict2

list1 = [0,1,2,3,4,5,6]
list2 = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]
dict2 = {}

i = 0
if len(list1) == len(list2):
    while i < len(list1):
        dict2[list1[i]] = list2[i]
        i += 1
print(dict2)

猜你喜欢

转载自blog.csdn.net/qq_38358499/article/details/88651265