大家好,今天给各位分享Python编程教程:深入探索第09章内容的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
t=()
print(type(t)) #t1=("名称", )
print(t1) # ("名字",)
print(type(t1)) #注意:特别注意元组中逗号的使用。意外创建的元组将变成字符串。例如:
t=("名字")
print(t,type(t)) #name
2元组的索引和切片
tups=("name", "wwj", "age", "good", "hello")
打印(tups)
#根据索引获取值
print(tups[0]) # 名称
print(tups[-1]) # 好
#取两者之间的值(范围)
print(tups[1:4]) # ("wwj", "年龄", "好")
print(tups[:2]) # ("姓名", "年龄", "你好")
#翻转元组
print(tups[:-1]) # ("你好", "好", "年龄", "wwj", "名字")
3for循环取值
for i in tups:
打印(一)
#for循环执行结果
姓名
WW
年龄
好的
你好
4元组拼接:+
t1=(1,2,3)
t2=("ab", "cd", "fg")
t=t1 + t2
print(t, type(t)) # (1, 2, 3, "ab", "cd", "fg")
5元组的重复:*
t2=("ab", "cd", "fg")
t=t2*3
print(t, type(t)) # ("ab", "cd", "fg", "ab", "cd", "fg", "ab", "cd", "fg")
6成员资格测试:in,not in
t1=("ab", "cd", "fg")
print("ab" in t1) # True
print("w" in t1) # False
print(123 不在t1 中) # True
7元组的打包与解包
t=1, 2, 3 # 打包
print(t, type(t)) # (1, 2, 3)x, y, z=t # 解压
打印(x)#x
打印(y)#y
print(z) # z打包:将1、2、3打包并赋值给变量t,相当于将3个苹果打包到一个盒子里。
解包:从盒子t中取出3个苹果,分别给x、y、z
注意:拆箱这里需要注意的是,必须有几个对应的变量来接收盒子里苹果的数量。太多了还不够,少了也不够。
8平行赋值
x, y=3, 4
打印(x,y)
打印(x)练习:打印斐波那契序列x, y=0, 1
而x 50:
x, y=y, x + y
打印(x)
#执行结果
1
1
2
3
5
8
13
21
9删除元组
t=(1,2,4)
打印(t)#(1,2,4)
德尔特
print(t) # NameError: 名称“t”未定义。注意,这里所说的删除只是删除整个元组,而不是删除元组中的某个元素。
10总结
元组中常用的运算符:
运算符(表达式)描述重要程度+ 合并成员资格中的重复项for i in (1, 2, 3):print(i) 迭代t[2] 索引值t[start:stop:step] 切片(截取)几个元组内置函数:
方法说明重要性max(tuple) 返回元组中最大的元素min(tuple) 返回元组中最小的元素tuple(seq) 将序列转换为元组len(tuple) 返回元组长度
2、 元组的嵌套
与列表相同,元组也可以嵌套来存储数据:
t=(1, (2, 3), [4, [5, "c"]], {"a": "b"}, {8, 7})
对于t: 中的项目
打印(项目)
"""
1
(23)
[4,[5,"c"]]
{"a": "b"}
{8, 7}
"""元组中可以存储的数据类型相当丰富。还可以发现,嵌套元素也被视为一个整体,称为元组的子元素。但是我们说元组是不可变的,但是我们发现它们是由列表组成的。这是怎么回事?
t=(1, (2, 3), [4, [5, "c"]], {"a": "b"}, {8, 7})
t[0]="x" # TypeError: "tuple" 对象不支持项赋值通过上面的例子,可以发现tuple中的普通元素是不允许修改的,但是list是可变的。我们可以用其他东西替换该列表吗?那么元素呢?
t=(1, (2, 3), [4, [5, "c"]], {"a": "b"}, {8, 7})
打印(t [2])[4,[5,"c"]]
t[2]="w" # TypeError: "tuple" 对象不支持项赋值从上面的例子中还可以发现,如果把列表当成元组的普通元素,那么它就不能被修改,而元组是不可变的。特征。但是如果我们尝试修改列表中的子元素怎么办?
t=(1, (2, 3), [4, [5, "c"]], {"a": "b"}, {8, 7})
t[2][0]="w"
print(t) # (1, (2, 3), ["w", [5, "c"]], {"a": "b"}, {8, 7}) 在上面的例子中,我们可以发现,t[2][0]指的是列表中的第一个元素。我们在第2行修改,发现可以修改成功。这是为什么呢?不允许修改元组中的普通元素。嵌套子元素是否可以修改取决于子元素本身属于什么数据类型。如果子元素是列表,则可以修改。如果是元组则不需要修改。
所以,理解了元组之后,你可能会有更多的疑问。除了不可变之外,元组和列表之间没有区别吗?我们通过与列表的比较来证明存在就是真理!
需要注意的是,元组没有添加或删除功能。那么这样设计元组时,放弃增删改换,会得到什么呢?
表现!是的,以业绩换取!如果您不相信我,请看一下。以下演示代码是由IPython(Python的另一个发行版)完成的。
2.3 列表与元组的比较
1创建生成速度
创建相同大小的列表和元组并观察变化。
上面的例子意味着我们创建一个长度为5的列表,执行大约7个大循环,并在每个大循环中执行10000000个小循环。这7次大循环每次花费(平均)139 ns,每次(标准)偏差为2.34 ns。每次创建相同长度的元组只需要17.3 ns。与创建列表所需的139 ns 相比,您可以看到创建元组要快得多。
2遍历速度
我们循环遍历元组和列表,可以看到遍历列表需要4.73 s,而元组一侧需要823 ns。
要知道1微秒(s)=1000纳秒(ns),元组的遍历性能比列表快很多。
3存储开销
正如你所看到的,元组在存储空间上也有优势。
4哈希比较
简单来说,Hash一般翻译为“散列”,也有直接音译为“散列”的。就是通过哈希算法对任意长度的输入(也称为预映射、原像)进行变换。转换为固定长度的输出,即哈希值。这种变换是一种压缩映射,即哈希值的空间通常远小于输入的空间,并且不同的输入可能哈希到相同的输出,因此不可能从哈希中确定唯一的输入值价值。简单来说,就是将任意长度的消息压缩成固定长度的消息摘要的函数。
Python 中的可哈希类型:字符串、元组、对象。哈希类型就是我们常说的不可变类型。其优点是性能优化、多线程安全、无需锁、不用担心被恶意篡改或意外修改。
【Python编程教程:深入探索第09章内容】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于看到 Python 之 09 了!期待这集的内容分享!
有18位网友表示赞同!
Python 之系列越来越有意思了,每次都能学到新知识!
有6位网友表示赞同!
喜欢这类深入浅出讲解的视频,希望能学到更多 Python 的技巧。
有5位网友表示赞同!
不知道这集会讲什么,感觉一定会很有用!
有17位网友表示赞同!
好久没看过 Python 之系列,准备好好补一下最新的课程了。
有20位网友表示赞同!
希望这集能够解释一些比较进阶的 Python 知识!
有18位网友表示赞同!
Python 学习真的太棒了!期待这集能帮助我提升 Python 的水平
有7位网友表示赞同!
看标题感觉会介绍很多新的 Python 库或工具,我很期待!
有13位网友表示赞同!
学习 Python 还剩几步路,希望这个系列能帮助我更快突破瓶颈。
有12位网友表示赞同!
Python 的学习路径总是让人难以捉摸,这集会不会有更明确的指南?
有10位网友表示赞同!
我已经掌握了 Python 的基础知识,想看看高级一点的内容!
有5位网友表示赞同!
看标题里的 "09" 感觉好像涵盖了很多内容吧!
有15位网友表示赞同!
Python 之系列能让我把零散的 Python 学习积累起来,真是太棒了!
有20位网友表示赞同!
期待学习新的 Python 应用案例!
有13位网友表示赞同!
这集的内容会不会结合最新的 Python 版本进行讲解?
有18位网友表示赞同!
学习 Python 是一段有趣的旅程,希望 "Python 之 09" 能让我一路走下去!
有14位网友表示赞同!
Python 的应用领域越来越广了,期待从 "Python 之 09" 学到更多!
有5位网友表示赞同!
不知道这集会讲什么新的 Python 特性?
有10位网友表示赞同!