1.什么是元祖
python的元祖和列表类似,不同之处在于元祖的元素不能被修改,而列表的元素可以被修改,也可以进行切片和连接操作。元祖使用小括号创建,列表是用中括号创建 元祖的创建语法:元祖名 = (元素1,元素2,…,元素n) students = (‘jack’,’tom’,’john’,’kim’)
2.操作元祖
1)访问元祖
2)删除元祖
元祖和列表不一样,元祖中的元素是不允许被单独修改和删除的,但是我们可以使用del语句来删除整个元祖 del 元祖名 删除后就不存在了
代码
students = ('jack','tom','kim','mary')
print("删除之前的元祖是:",students)
del students
print("删除之后的元祖是:",students)
运行结果
3)元祖截取
元祖的元素虽然不能被改变,但是元祖也是一个序列,也可以通过索引去访问和截取元祖中的指定位置的元素 语法:元祖名[开始下标,结尾下标] “含头不含尾”原则
代码
# 截取元祖
students = ('jack','tom','kim','mary')
print(students[1:3])
运行结果
4)多维元祖截取
多维元祖就是元祖中的元祖,元祖中的元素可以是一个新的元祖 元祖名[第一个索引][第二个索引] students[1][0]
代码
students = ('jack',('tom',18,'男'),('john',19,'女'),'amy')
print(students[1][0])
print(students[2][2])
运行结果
3.元祖函数
1)len(tuple)
2)max(tuple)
3)min(tuple)
4)tuple(list)
代码
students = ('jack','tom','kim','mary')
students1 = ('jack',12,23,4,'mary','tom')
# 元祖的长度
num = len(students)
print("students元祖的长度为:",num)
# 元祖中的最大值
strmax = max(students)
print("students元祖中的最大值为:",strmax)
# 字符型和数值型混合,用max和min会报错
# strmax1 = max(students1)
# print("students1元祖中的最大值为:",strmax1)
# 元祖中的最小值
strmin = min(students)
print("students元祖中的最小值为:",strmin)
# strmin1 = min(students1)
# print("students1元祖中的最小值为:",strmin1)
# 列表转换为元祖
list1 = [1,2,3,4,5]
tuple1 = tuple(list1)
print(tuple1)
运行结果
4.什么是字典
字典是另外一个可变容器类型,且可以 存储任意类型对象。列表元素进行修改的话,通过索引进行修改,如果当前元素的顺序发生变化,此时还需要修改索引才能完成元素的修改。有没有办法,既能存储多个数据,又能方便准确定位元素呢?就是字典 字典创建语法:字典名 = {key1:value,key2:value2} 示例:students = {‘name’:’Tom’,’age’:18,’sex’:’男’}
5.操作字典
1)访问字典
字典中根据键访问值,可以指定字典名和方括号内的键。 students[‘name’]
代码
students = {'name':'Tom','age':18,'sex':'男',2:19}
# 取值语法:字典名[key]
print(students['name'])
print(students[2])
运行结果
2)修改字典元素
字典元素也可以修改,通过key找到具体的元素之后,给一个新的元素值即可。
代码
# 修改字典元素
students = {'name':'Tom','age':18,'sex':'男'}
修改字典元素:字典名[key] = Newvalue
students['age'] = 20
print(students)
运行结果
3)添加元素
动态的向字典中添加元素的时候,只需要添加的键在字典中不存在,就会新增这个元素。
代码
students = {'name':'Tom','age':18,'sex':'男'}
# 添加字典元素:向字典中添加一个住址
students['address'] = '上海'
print("添加之后的字典为:",students)
students['address'] = '马尔代夫'
print(students)
运行结果
4)删除自字典元素
方式1:使用del语句删除元素:del既可以删除指定的字典元素,也可以删除整个字典,如果不指定key,代表删除整个字典 方式2:使用clear()方法清空整个字典,被清空的字典最后会剩下一个空的字典。而用del删除的字典在程序中就不存在了。
代码
students = {'name':'Tom','age':18,'sex':'男'}
# 使用del删除元素
del students['age']
print("删除age之后的字典为:",students)
# 使用del删除字典
# del students
print(students)
# 使用clear()清空字典
students.clear()
print("被clear()清空后的字典为:",students)
运行结果
6.字典函数
1)len(dict)
2)str(dict)
3)type(variable)
代码
students = {'name':'Tom','age':18,'sex':'男'}
# 计算字典中元素的个数
print(len(students))
# 将字典转化成可直接打印的字符串
str1 = str(students)
print(str1)
# 判断变量的数据类型
print(type(str1))
运行结果
7.字典方法
1)dict.fromkeys(seq,value)
创建一个新字典,以序列seq中元素做字典值,value为字典所有键对应的初始值
2)dict.get(key,default=None)
返回指定键的值,如果key字典中没有返回default的值
代码
keys = ['name','age','sex']
# 创建新的字典,key来自于序列
newdict = dict.fromkeys(keys)
print("newdict为:",newdict)
newdict1 = dict.fromkeys(keys,'test')
print("newdict1为:",newdict1)
# 获取指定key的value值
name = newdict.get('name') # newdict中有name键,对应的值为None
print(name)
address = newdict.get('address','上海') # newdict中没有address键,故输出上海
print(address)
age = newdict1.get('age',18) # newdict1中有age键,故输出age对应的键值test
print(age)
运行结果
8.思考题
要求:创建一个字典,用于存储同学姓名,依次访问该字典中的元素,并且将老师和班主任的命名添加至字典。 将每个同学的姓名打印出来,并且添加一个问候语。
代码
members = {1:'tom',2:'jack',3:'dany'}
members['teacher1'] = 'Mary'
members['teacher2'] = 'John'
print(members)
print(members['teacher1']+"老师你好!")
print(members[1]+"同学你好!")
print(members['teacher2']+"班主任你好!")
运行结果