Python基础语法学习--元祖和字典以及相关操作和方法

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']+"班主任你好!")

运行结果

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值