欢迎光临
我们一直在努力

day05下: python数据容器 ----->元组容器以及序列的切片操作(重点)

元组一旦定义完成,就不可修改

总体概况

定义元组:

注意:定义一个元素的元组必须加逗号 (元素 , )

元组的相关操作

定义元组实操

# 定义空元组
t1 = ()
t2 = tuple()
print(t1, t2)
print(type(t1), type(t2))

# 定义非空元组
t3 = (10, 3.14, '使得', True)
print(t3, type(t3))
# 注意:如果元组中只存储1个元素,必须加逗号
t4 = (10,)
print(t4, type(t4))

# 注意:元组也支持嵌套
t5 = (t3, t4)
print(t5, type(t5))

元组嵌套列表的注意事项

# 元组是不可变类型,列表是可变类型
# 元组嵌套不可变类型
t1 = (10, 3.14, "你好", (1, 2, 3))
# t1[-1] = (4,5,6) # 此行报错,因为元组不支持修改
# t1[-1][0] = 4 # 此行报错,因为元组不支持修改

# 元组嵌套中有可变类型
t2 = (10, 3.14, "你好", [1, 2, 3])
print(t2)
# 本质元组中存储的是地址(地址1,地址2,地址3,地址4)
# id:查看10进制地址
print(id(t2[-1]))
print('———————')
# t2[-1] = [4,5,6] # 此行报错,因为元组不支持修改
t2[-1][0] = 4 # 可以修改成功,原因是列表是可变类型,列表内容变了,地址没变
print(id(t2[-1]))
print(t2)

结果

元组的查询操作

# 定义元组
info = (('张三', '里斯', '王五'), (18, 18, 28), (66.66, 55.5))
print(info)
# 查询info的元素个数
print(len(info))
# 查询info第二个元素中18出现的个数
print(info[1].count(18))
# 查询ages中28的索引
ages = info[1]
print(ages.index(28))
# 注意:如果查询索引不存在的元素会报错
# print(ages.index(38))

元组的遍历

# 元组的遍历
# 定义元组
names = ('熊大', '熊二', '张三', '里斯', '王五', '赵六', '天启')

# for循环方式
for e in names:
print(e)
print('========================')

# while循环方式
index = 0
while index < len(names):
e = names[index]
print(e)
index += 1

 序列

重重点:序列的常用操作—>切片

只有序列才有切片操作

步长决定从哪开始取

总结

# 序列: 字符串 列表 元组
# 定义序列,并使用切片
# 1.定义字符串'abcde' 完成对应需求
s = 'abcde'
print(s[::])
print(s)
# 需求: 获取 abc
print(s[0:3:1])
print(s[:3])
# 需求: 获取 ace
print(s[0::2])
print(s[::2])
# 需求: 获取 cd
print(s[2:4:1])
print(s[2:4])
# 需求: 获取 edcba
print(s[-1::-1])
print(s[::-1])
# 需求: 获取 eca
print(s[-1::-2])
print(s[::-2])
# 需求: 获取 cba
print(s[2::-1])
print(s[-3::-1])
print('=============================================')
# ctrl+R 替换快捷键 ctrl+F 查找快捷
# 2.定义列表['a','b','c','d','e'] 完成对应需求
l = ['a', 'b', 'c', 'd', 'e']
# 需求: 获取 abc
print(l[0:3:1])
print(l[:3])
# 需求: 获取 ace
print(l[0::2])
print(l[::2])
# 需求: 获取 cd
print(l[2:4:1])
print(l[2:4])
# 需求: 获取 edcba
print(l[-1::-1])
print(l[::-1])
# 需求: 获取 eca
print(l[-1::-2])
print(l[::-2])
# 需求: 获取 cba
print(l[2::-1])
print(l[-3::-1])
print('==============================================')
# 2.定义元组('a','b','c','d','e') 完成对应需求
t = ('a', 'b', 'c', 'd', 'e')
# 需求: 获取 abc
print(t[0:3:1])
print(t[:3])
# 需求: 获取 ace
print(t[0::2])
print(t[::2])
# 需求: 获取 cd
print(t[2:4:1])
print(t[2:4])
# 需求: 获取 edcba
print(t[-1::-1])
print(t[::-1])
# 需求: 获取 eca
print(t[-1::-2])
print(t[::-2])
# 需求: 获取 cba
print(t[2::-1])
print(t[-3::-1])

赞(0)
未经允许不得转载:171主机测评 » day05下: python数据容器 ----->元组容器以及序列的切片操作(重点)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址