网站性能检测评分
注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。
python所有元素
干货 | 完美Python入门基础知识点总结 推广视频课程
访问flyai.club,一键创建你的人工智能项目
作者 | 老虎头https://cnblogs/shanlizi/p/7015852.html
没那么神秘,三分钟学会人工智能
Python标识符
在 Python 里,标识符有字母、数字、下划线组成。在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。Python 中的标识符是区分大小写的。以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
Python有五个标准的数据类型
Numbers(数字)String(字符串)List(列表)Tuple(元组)Dictionary(字典)
Python支持四种不同的数字类型
int(有符号整型)long(长整型[也可以代表八进制和十六进制])float(浮点型)complex(复数)
python的字串列表有2种取值顺序
从左到右索引默认0开始的,最大范围是字符串长度少1从右到左索引默认-1开始的,最大范围是字符串开头
List(列表) 是 Python 中使用最频繁的数据类型
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。列表用 [ ] 标识,是 python 最通用的复合数据类型。列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。加号 + 是列表连接运算符,星号 * 是重复操作。
元组是另一个数据类型,类似于List(列表)
元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型
列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
Python数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
int(x [,base])
将x转换为一个整数
long(x [,base] )
将x转换为一个长整数
float(x)
将x转换到一个浮点数
complex(real [,imag])
创建一个复数
str(x)
将对象 x 转换为字符串
repr(x)
将对象 x 转换为表达式字符串
eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)
将序列 s 转换为一个元组
list(s)
将序列 s 转换为一个列表
set(s)
转换为可变集合
dict(d)
创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)
转换为不可变集合
chr(x)
将一个整数转换为一个字符
unichr(x)
将一个整数转换为Unicode字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
将一个整数转换为一个八进制字符串
Python 运算符
算术运算符比较(关系)运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级
python算术运算符
+加 - 两个对象相加a + b 输出结果 30
-减 - 得到负数或是一个数减去另一个数a - b 输出结果 -10
*乘 - 两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 200
/除 - x除以yb / a 输出结果 2
%取模 - 返回除法的余数b % a 输出结果 0
**幂 - 返回x的y次幂a**b 为10的20次方, 输出结果 100000000000000000000
//取整除 - 返回商的整数部分9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
python比较运算符
以下假设变量a为10,变量b为20:
==等于 - 比较对象是否相等(a == b) 返回 False。
!=不等于 - 比较两个对象是否不相等(a != b) 返回 true.
<>不等于 - 比较两个对象是否不相等(a <> b) 返回 true。这个运算符类似 != 。
>大于 - 返回x是否大于y(a > b) 返回 False。
<小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。(a < b) 返回 true。
>=大于等于 - 返回x是否大于等于y。(a >= b) 返回 False。
<=小于等于 - 返回x是否小于等于y。(a <= b) 返回 true。
Python赋值运算符
以下假设变量a为10,变量b为20:
=简单的赋值运算符c = a + b 将 a + b 的运算结果赋值为 c
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a
Python位运算符
下表中变量 a 为 60,b 为 13,二进制格式如下:
a = 0011 1100b = 0000 1101-----------------a&b = 0000 1100a|b = 0011 1101a^b = 0011 0001~a = 1100 0011
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a<< 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111
Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。
orx or y布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False
Python成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
in如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
Python身份运算符
身份运算符用于比较两个对象的存储单元
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
注:is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
Python 循环语句
Python提供了for循环和while循环(在Python中没有do..while循环):
while 循环在给定的判断条件为 true 时执行循环体,否则退出循环体。
for 循环重复执行语句
嵌套循环你可以在while循环体中嵌套for循环
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
break 语句在语句块执行过程中终止循环,并且跳出整个循环
continue 语句在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass 语句pass是空语句,是为了保持程序结构的完整性。
Python Number(数字)
Python 支持四种不同的数值类型:
整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
注:长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。
Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
Python Number类型转换
int(x [,base])将x转换为一个整数
long(x [,base])将x转换为一个长整数
float(x )将x转换到一个浮点数
complex(real [,imag ])创建一个复数
str(x )将对象 x 转换为字符串
repr(x )将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s )将序列 s 转换为一个元组
list(s )将序列 s 转换为一个列表
chr(x )将一个整数转换为一个字符
unichr(x )将一个整数转换为Unicode字符
ord(x )将一个字符转换为它的整数值
hex(x )将一个整数转换为一个十六进制字符串
oct(x )将一个整数转换为一个八进制字符串
python数学函数
abs(x)返回数字的绝对值,如abs(-10) 返回 10
ceil(x)返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y)如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x)返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x)返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x)返回数字的下舍整数,如math.floor(4.9)返回 4
log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...)返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)返回给定参数的最小值,参数可以为序列。
modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y)x**y 运算后的值。
round(x [,n])返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x)返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j
Python随机函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
Python包含以下常用随机数函数
choice(seq)从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step])从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random()随机生成下一个实数,它在[0,1)范围内。
seed([x])改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst)将序列的所有元素随机排序
uniform(x, y)随机生成下一个实数,它在[x,y]范围内。
Python三角函数
Python包括以下三角函数
acos(x)返回x的反余弦弧度值。
asin(x)返回x的反正弦弧度值。
atan(x)返回x的反正切弧度值。
atan2(y, x)返回给定的 X 及 Y 坐标值的反正切值。
cos(x)返回x的弧度的余弦值。
hypot(x, y)返回欧几里德范数 sqrt(x*x + y*y)。
sin(x)返回的x弧度的正弦值。
tan(x)返回x弧度的正切值。
degrees(x)将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x)将角度转换为弧度
Python数学常量
pi数学常量 pi(圆周率,一般以π来表示)
e数学常量 e,e即自然常数(自然常数)。
Python字符串
Python转义字符
在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。
如下表:
\(在行尾时)续行符
\\反斜杠符号
\'单引号
\"双引号
\a响铃
\b退格(Backspace)
\e转义
\000空
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制数,yy代表的字符,例如:\o12代表换行
...你不知的Python数据结构 营销视频课程
Python一共有三大数据结构,它是Python进行数据分析的基础,分别是tuple,list以及dict。本文通过这三者的学习,打下数据分析的基础。
数组
数组是一个有序的集合,他用方括号表示。
num就是一个典型的数组。数组不限定其中的数据类型,可以是整数也可以是字符串,或者是混合型。
数组可以直接用特定的函数,函数名和Excel相近。
sum是求和,len则是统计数组中的元素个数。
上述列举的函数是数组内整体元素的应用,如果我只想针对单一的元素呢?比如查找,这里就要用到数组的特性,索引。索引和SQL中的索引差不多,都是用来指示数据所在位置的逻辑指针。数组的索引便是元素所在的序列位置。
注意,索引位置是从0开始算起,这是编程语言的默认特色了。num[0]指数组的第一个元素,num[1]指数组的第二个元素。
我们用len()计算出了数组元素个数是5,那么它最后一个元素的索引是4。若是数组内的元素特别多呢?此时查找数组最后一位的元素会有点麻烦。Python有一个简易的方法,可以用负数表示,意为从最后一个数字计算索引。
这里的num[4]等价于num[-1],num[-2]则指倒数第二个的元素。
再来一个新问题,如何一次性选择多个元素?例如筛选出数组前三个元素。在Python中,用:表示范围。
num[0:3]筛选了前三个元素,方括号左边是闭区间,右边是开区间,所以这里是num[0],num[1]和num[2],并不包含num[3]。这个方法叫做切片。
上述是索引的特殊用法,[0:]表示从第0个索引开始,直到最后一个元素。[:3]表示从第一个元素开始,直到第3个索引。
负数当然也有特殊用法。[-1:]表示从最后一个元素开始,因为它已经是最后一个元素了,所以只返回它本身。[:-1]表示从第一个元素开始到最后一个元素。num[-2:-1]和num[-3:-1]大同小异。
数组的增删查
我们已经了解数组的基本概念,不过仍旧停留在查找,它不涉及数据的变化。工作中,更多需要操纵数组,对数组的元素进行添加,删除,更改。
数组通过insert函数插入,函数的第一个参数表示插入的索引位置,第二个表示插入的值。
另外一种方式是append,直接在数组末尾添加上元素。它在之后讲到迭代和循环时应用较多。
如果要删除特定位置的元素,用pop函数。如果函数没有选择数值,默认删除最后一个元素,如果有,则删除数值对应索引的元素。
更改元素不需要用到函数,直接选取元素重新赋值即可。
到这里,数组增删改查已经讲完,但这只是一维数组,一维数组之上还有多维数组。如果现在有一份数据是关于学生信息,一共有三个学生,要求包含学生的姓名,年龄,和性别,应该怎么用数组表示呢?
有两种思路,一种是用三个一维数组分别表示学生的姓名,年龄和性别。
学生属性被拆分成多个数组,利用索引来表示其信息,这里的索引有些类似SQL的主键,通过索引查找到信息。但是这种方法并不直观,实际应用会比较麻烦,更好的方法是表示成多维数组。
所谓多维数组,是数组内再嵌套数组,图中表示的是一个宽度为3,高度为3的二维数组。此时student[0]返回的是数组而不是单一值。这种方法将学生信息合并在一起,比第一个案例更容易使用。
如果想选择第一个学生的性别,应该怎么办呢?很简单,后面再加一个索引即可。
现在尝试快速创建一个多维数组。
[0]*3将快速生成3个元素值为0的数组,这是一种快捷操作,而[row]*4则将其扩展成二维数据,因为是4,所以是3*4的结构。
这里有一个注意点,当我们想更改多维数组中的某一个元素而不是数组时,这种方式会错误。
按照正常的想法,martix[1][0]将会改变第二个数组中的第一个值为1,但是结果是所有数组的第一个值都变成1。这是因为在matrix = [row] * 4操作中,只是创建3个指向row的引用,可以简单理解成四个数组是一体的。一旦其中一个改变,所有的都会变。
比较稳妥的方式是直接定义多维数组,或者用循环间接定义。多维数组是一个挺重要的概念,它也能直接表示成矩阵,是后续很多算法和分析的基础(不过在pandas中,它是另外一种形式了)。
元组
tuple叫做元组,它和数组非常相似,不过用圆括号表示。但是它最大的特点是不能修改。
当我们想要修改时就会报错。
而选择和数组没有差异。
元组可以作为简化版的数组,因为它不可更改的特性,很多时候可以作为常量使用,防止被篡改。这样会更安全。
字典
字典dict全称dictionary,以键值对key-value的形式存储。所谓键值,就是将key作为索引存储。用大括号表示。
图中的’qinlu’是key,18是value值。key是唯一的,value可以对应各种数据类型。key-value的原理不妨想象成查找字典,拼音是key,对应的文字是value(当然字典的拼音不唯一)。
字典和数组的差异在于,因为字典以key的形式存储和查找,所以它的查询速度非常快,毕竟翻字典的时候你只要知道拼音就能快速定位了。对dict数据结构,10条记录和10万条记录的查找没有区别。
这种查找方式的缺点是占用内存大。数组则相反,查找速度随着元素的增加逐渐下降,这个过程想象成程序在一页页的翻一本没有拼音的字典,直到找到内容。数组的优点是占用的内存空间小。
所以数组和字典的优缺点相反,dict是空间换时间,list是时间换空间,这是编程中一个比较重要的概念。实际中,数据分析师的工作不太涉及工程化,选用数组或者字典没有太严苛的限制。
细心的读者可能已经发现,字典定义时我的输入顺序是qinlu,lulu,qinqin,而打印出来是lulu,qinlu,qinqin,顺序变了。这是因为定义时key的顺序和放在内存的key顺序没有关系,key-value通过hash算法互相确定,甚至不同Python版本的哈希算法也不同。这一点应用中要避免出错。
既然字典通过key-value对匹配查找,那么它自然不能不用数组的数值索引,它只能通过key值。
如果key不存在,会报错。
通过in方法,可以返回True或False,避免报错。
dict和list一样,直接通过赋值更改value。
能不能更改key的名字?不能,key一旦确定,就无法再修改,好比字典定好后,你能修改字的拼音么?
dict中删除key和list一样,通过pop函数。增加key则是直接赋予一个新的键值对。
dict的keys和values两个函数直接输出所有的key值和value值。如果要转换成数组,则再外面嵌套一个list函数。
items函数,将key-value对变成tuple形式,以数组的方式输出。
字典可以通过嵌套应用更复杂的数据格式,和NoSQL与JSON差不多。
基础的数据类型差不多了,更多函数应用大家网上自行查阅文档,这块掌握了,在数据清洗过程中将会非常高效,尤其是读取Excel数据时。当然不要求滚瓜烂熟,因为后面将学习更加强大的Numpy和Pandas
零基础十分钟学Python-容器 行业视频课程
在上篇文章中我们讲解了Python容器-列表,那么这里我们继续上篇的内容,当然如果你想看上篇的内容可以我的主页观看
3、元组
与列表类似,元组也是由任意类型元素组成的序列。于列表不同的是,元组是不可改变的,这意味着一但元组被定义,将无法再进行增加、删除或修改元素等。因此,元组就像是一个变量列表。
3.1、使用()创建元组
可以用()创建一个空元组
创建一个或多个的元时,每一个元素后面都需要跟着一个逗号,即使只包含一个元素也不能省略:
如果创建的元组所包含的元素数量超过1,最后一个元素后面的逗号都可以省略:
可以一次将元组赋值给多个变量:
可以利用元组在一条语句中对多个变量的值进行交换,而不需要借助零时变量:
tuple()函数可以用其他类型的数据类创建元组:
4、字典
字典(dictionary)与列表类似,但其中元素的顺序无关紧要,因为他们不是通过像0或1的偏移量访问的,取而代之,每个元素拥有与之对应的互不相同的键(key),需要通过键来访问元素。键通常是字符串,但它还可以是Python中其它任意的不可变类型:布尔型、浮点型、元组、字符串,以及其它一些类型。字典是可变的,因此你可以增加、删除或修改其中的键值对。
提示:在其他语言中,字典可能会被称作关系型数组、哈希表或哈希图。在Python中,字典还经常被简写成dict。
4.1、使用{}创建字典
用大括号({})将一系列以逗号隔开的键值对(key:value)包裹起来即可进行字典当的创建。最简单的字典是空字典,它不包含任何键值对:
创建一个字典:
提示:Python允许在列表、元组或字典的最后一个元素后面添加逗号,这不会产生任何问题。
4.2、使用dict()转换为字典
可以使用dict()将包含双值子序列的序列转换成字典,每个子序列的第一个元素作为键,第二个元素作为值:
可以对任何包含双值子序列的序列使用dict(),下面是其他的例子:
包含双值元组的列表:
包含双值列表的元组:
双字符的字符串组成的列表:
双字符的字符串组成的元组:
4.3、使用[key]添加或修改元素
向字典中添加元素只需要指定该元素的键并赋予相应的值即可。如果该元素的键已经存在于字典中,那么该键对应的旧值会被新值取代,如果改元素的键并未在字典中出现,则会被加入字典。
建立一个包含大多数Monty Python成员的名字字典,用他们的姓当作键,名当作值:
人员添加完成后貌似落下了一个人,生于美国的Terry Gilliam。下面是一个糟糕的程序员为了将Gilliam添加进字典而编写的代码,他粗心的将Gilliam的名字打错了:
下面是另一位颇具Python风格的程序员修改的代码:
使用通过相同的键(‘Gilliam’)将原本对应的值’Gerry’修改为为’Terry’
4.4、使用update()合并字典
使用update()可以将一个字典的键值对合并到另一个字典中去。 首先创建一个包含所有成员的字典pythons:
接着创建一个包含其他喜剧演员的字典,名为others:
现在,出现了另一位糟糕的程序员,它认为others应该被归入Monty Python成员中:
如果待添加的字典与待扩充的字典包含同样的键,新归入字典的值会取代原有的值:
4.5、使用del删除具有制定键的元素
创建一个字典:
删除Linux:
4.6、使用clear()删除所有元素
使用clear(),或者给字典变量重新赋值一空字典({})可以将字典中所有元素删除:
4.7、使用in判断是否存
如果你希望判断某一个键是否存在于一个字典中,可以使用in。
4.8、使用[key]获取元素
这是对字典最常进行的操作,只需要制定字典名和键即可获得对应的值:
如果字典中不包含一个制定的键,会产生一个异常:
有两种方法可以避免这种情况发生,第一种是在访问前通过in测试是否存在:
另一种方法是使用字典函数get():
反之,若键不存在,如果你指定了可选值,那么get()函数将返回这可选值:
否则,会得到None(在交互解释器中什么也不会显示):
4.9、使用keys()获取所有键
使用kets()可以获得字典中所有的键。
在python2里,keys()会返回一个列表,而在python3里则会返回dict_keys(),它是键的迭代形式。这种返回形式对于大型的字典非常有用,应为他不需要时间和空间来创建返回的列表,有时你需要的可能就是一个完整的列表,而在python3中,你只能自己调用list()将dict_keys()转换为列表类型。
在python3里,你同样需要手动使用list()将values()和items()的返回值转换为普通的Python列表。
4.10、使用values()获取所有值
使用values()可以获取字典中的所有值:
4.11、使用items()获取所有键值对
使用items()函数可以获取字典中所有的键值对:
每一个键值都会以元组的形式返回。
4.12、使用=赋值,使用copy()赋值
与列表一样,对字典内容进行修改会反映到所有与之相关联的变量名上:
若想避免这种情况,可以使用copy()将字典赋值到一个新的字典中:
Python元组内的元素还能通过名称访问?不知道的一定是新手小白! 新手视频课程
元组
学过Python的同学应该都知道,元组是Python三种内建的数据结构之一,它像列表一样有序,又像字符串一样不可更改,所以,元组使我们既能方便的访问一组数据而又不会轻易地改变数据。
元组通常是通过在一组括号内用逗号将各个元素分隔开的形式来定义的。如:
我们可以通过元素的索引访问到元组内的元素,如:
但是这样创建访问会有一些问题,比如说,时间长了我不知道其中某一个元素代表什么了;又或者我想要获取身高,我就要去数数身高的索引是多少。
看到这里有的同学会问,难道我们只能忍受这种麻烦的操作,没有更好的办法了吗?
答案是有!下面我们就来讲讲今天的重点,可以弥补传统元组不足的命名元组——namedtuple!
命名元组——namedtuple
namedtuple是Python内建模块collections中的一种数据结构,它是元组的子类,却又比元组高级,它不仅具有不变性,又可以给每个元素一个名称,通过元素名称来访问元素。
创建方法:
元素访问:
通过演示我们可以得知,该方法既可以通过传统的索引的方法访问元素,又可用通过属性的方式访问元素,十分便捷!
本期的内容到此为止了,认为有用的同学赶快收藏转发吧!
python列表删除元素整理 流量视频课程
先看一个例子:
这时发现并没有达到我们想要的结果,原因分析如下:
要了解一下python列表的数据结构,列表属于连续线性表,它的连续在于有一块连续的内存储存着列表中元素的地址,如图(忽略地址与值所占的字节,只为方便举例子):
当然也可以通过一个代码来看证明一下:
用一下del看看会出现什么结果:
对比地址的变化,可以得知del删除了该元素内存地址引用。
删除列表中的空元素有这两种方法:
即删除列表中指定元素建议使用上述两种方法,不要用for循环。
上面记录是写代码时踩的坑,有不严谨或者错误的地方期望大家指正。
python列表删除元素整理 企业视频课程
先看一个例子:
这时发现并没有达到我们想要的结果,原因分析如下:
要了解一下python列表的数据结构,列表属于连续线性表,它的连续在于有一块连续的内存储存着列表中元素的地址,如图(忽略地址与值所占的字节,只为方便举例子):
当然也可以通过一个代码来看证明一下:
用一下del看看会出现什么结果:
对比地址的变化,可以得知del删除了该元素内存地址引用。
删除列表中的空元素有这两种方法:
即删除列表中指定元素建议使用上述两种方法,不要用for循环。
上面记录是写代码时踩的坑,有不严谨或者错误的地方期望大家指正。