Python数据结构基础知识总结

一、Python中的数字类型

在这一部分里,我们将学习Python中数字类型和如何使用数字类型。具体我我们将学到:

1)Python中数字类型的细分

2)基本的数学运算

3)经典除法和地板除法的区别

4)Python中的赋值

1.数字类型

Python有许多不同的数字类型细分,这里我们只学习整数(integer)和浮点数(float)数字类型。

整数通俗理解就是日常数学的整数,又分为正整数和负整数。比如2和-2都是Python的整数类型。

Python中的浮点数很容易被识别,一般他们带有小数点或者带有“e”。比如2.0和-2.1就是浮点数。

4E2也是一个浮点数。(4E2=4*10^2=400.0)。

2.基本数学运算


基本数学运算1


基本数学运算2

3. Python的赋值

一般我们使用一个等号做赋值。等号左边是变量名称,等号右边是赋值内容。让我们看下面的例子。


赋值

以下为变量名命名规则:

1)变量名不能以数字开头;

2)变量名中不能用空格,可以用"_"代替,比如my_name才是正确的变量名命名方法;

3)在变量名中不能使用以下符号 :'",<>/?|\()!@#$%^&*~-+

4)根据PEP8,变量名最好小写;

5) 变量名中尽量不出现小写的字母l和字母O,因为容易和数字1数字0混淆

6)避免用Python的关键字做变量名


变量命名展示

通过type()查看数据类型


查看数据类型

二、Python中的字符串类型

Python的字符串用于记录文本信息。字符串实际是一串序列或者说Python按一定的次序记录字符串的信息。比如,对于“Hello”这个字符串,Python能识别出其为字符串以及它的特定顺序。这意味着我们可以通过下标取抓取“Hello”内部的字母。这一点非常关键。

关于字符串部分,我们将学习:

1)创建字符串

2)打印字符串

3)字符串索引和切片

4)字符串不变性

5)字符串常用函数方法

6)格式化打印

1、创建字符串

通过单引号和双引号创建字符串


创建字符串

2.打印字符串

使用jupyter notebook可以直接输出字符串,但这并不是正确的打印字符串的方法。正确的打印字符串的方法应该是使用print()函数。


打印字符串

3.字符串索引和切片

前面提到字符串是有序序列,意味着Python可以下标进行索引。

在Python中,我们用变量名[]进行索引。[]里的数字又叫下标,Python的下标是从0开始,这个非常重要。下面我们通过例子来掌握。

先创建字符串


创建字符串

开始索引和切片


索引和切片

请注意s[:3]指的是输出0-2下标的字符,并不包括3,所以是'hel'


切片2


切片3

4.字符串不变性

字符串有一个重要的属性是不变性,也就是说字符串一旦创建,其内部的元素不可以改变.我们通过例子来看.


字符串不变性

虽然字符串内部不可改变,但是外部却可以进行一些操作,比如拼接,比如做简单数学运算.见例子.


字符串操作

5.字符串常用函数方法

常用字符串函数方法包括字符串长度、将字符串全部变为大写、将字符串全部变为小写、将字符串用空格符隔开。


字符串常用函数方法

6.格式化打印

字符串格式化可以让你往字符串插入元素而不需要使用拼接的方法.用一个例子来进行直观的对比,两种方法的差别在哪里?

player = ' thomas'

points = '33'

'last night, ' + player + 'scored ' + str(score) + 'points' #拼接的方法

f'last night, {player} scored {points} points.' #字符串格式化


字符串格式化打印

6.1使用占位符进行格式化打印

6.1.1 你可以使用%s往你的语句里插入字符串.%又称作字符串格式化运算符.

print("I am going to inject %s here." %'something')



占位符格式化打印

6.1.2通过%后接元组实现多个元素插入

print("I am going to print %s text here, and %s text here." %('some', 'more'))


占位符格式化打印2

6.1.3 甚至可以通过变量名称来传递进行格式化打印

x, y = 'some', 'more'

print("I am going to print %s text here, and %s text here." %(x, y))


占位符格式化打印3

6.1.3 %r %s %d的区别

%r会把字符串括住的引号也打印出来,%d和%s都可以格式化打印整数和浮点数,%d会自动将数字取整数部分(注意是取整而不是四舍五入)。

%r %s %d的区别

6.1.4 浮点数的格式化打印和精度问题

浮点数使用例如%5.2f来进行格式化打印。这里面,小数点前面的数字表示输出列数数字位数大于它时,按实际位数输出,小数点前空缺也是小数点后面的数字表示输出的小数点位数,如果位数不足就会四舍五入,如果位数不够显示就会在后面补0.


浮点数格式化打印

6.1.6混合格式化打印

print(‘First:%s, Second:%5.2f, Third: %r' %('hi!', 3.1415, 'bye!'))


混合格式化打印


6.2 通过.format()方法来进行格式化打印

6.2.1 相比占位符格式化打印,.format()打印有以下优势。

6.2.1.1 插入的数据可以通过下标来索引

print(’The {2}, {1}, {0}' .format('fox', 'brown', 'quick'))



索引格式化打印

6.2.1.2 插入的元素可以赋予关键字

print('First Object:{a}, Second Object:{b},Third Object:{c}'.format(a=1,b='two',c=12.3))


插入的元素可以赋予关键字

6.2.1.3 插入的元素可以重复使用,避免多次输入


避免元素多次输入

6.2.2 .format()的对齐、填充和精度

通过{}你可以指定字段长度、指定对齐方式和指定取整精度


定字段长度、指定对齐方式和指定取整精度

.format()默认文字左对齐,数字右对齐,你可以<,^, 或者> 来调整实现左对齐、居中和右对齐。


对齐方式

在对齐处加上填充符号


在对齐处加上填充符号

.format() 的精度和占位符格式化打印处理方法一样


.format() 的精度

6.3f-strings格式打印方法

python3.6引入了f-strings格式化打印方法,和.format()相比,f-strings方法可以直接将外部变量整个插入到字符串里.如果想获得字符串外部的引号,可以使用!r.


f-strings格式化打印方法

f-strings使用"result: {value:{width}.{precision}}"来表示精度


f-strings精度

请注意使用f-strings方法,精度指的是所有的数字个数而不是小数点后的数字个数.这和科学计数以及统计分析类似.可惜的是,f-strings不会对齐向右自动填充.


f-strings精度2

可以通过结合f-strings和.format()的方法使数字对齐且向右填充


精度


三、Python中的列表类型

列表是Python中最应该被称为有序序列的概念.而且和前面的字符串不同,列表中的元素是可以改变的.这部分里我们将学到:

1)创建列表

2)列表索引和切片

3)基本函数方法

4)列表嵌套

5)列表解析

1.创建列表

列表用[]表示,[]里面的每一个元素用","隔开.

列表内的元素可以装不同的数据类型.


创建列表

2.列表索引和切片

列表的索引和切片和字符串一样.我们来看一些例子.


列表索引和切片

我们可以用+ 来拼接列表,就像字符串一样.


拼接列表

请注意,拼接只是临时并不会改变my_list.要采用重新赋值的方法才能永远改变my_list


重新赋值

我们可以同样用*给列表做简单运算


计算


3.基本函数方法

你可能会将Python中的列表和数组联系起来,但是Python中的列表灵活很多,第一,它没有大小限制,第二它也没有类型限制.

创建一个新列表


创建新列表

使用append()在列表末尾添加新元素


append

使用pop()将列表末尾的元素删除,同时pop关键字删除也可以通过下标索引指定删除的元素


pop

如果下标对应没有响相应的元素,程序会报错


报错

可以使用reverse()来将元素顺序颠倒,可以使用sort()将元素按照字母顺序排列


reverse&sort

4.列表嵌套

Python一个很大的灵活性就是数据结构支持嵌套,也就是说数据结构里含数据结构.比如一个列表里面的元素是另一个列表.


列表嵌套

我们可以用下标抓取元素,不过现在因为列表嵌套,元素有两层结构,分别是矩阵里的元素,矩阵里元素的元素.


抓取元素

5.列表解析

列表解析可以迅速构造列表,理解列表解析需要了解for loop循环.我们使用列表解析来抓取矩阵中的第一行的每一个元素.


列标解析


四、Python中的字典类型

字典是一种映射.和字符串以及列表通过元素位置不同定位不同,字典是无序的而是由不同的键-值对构成.通过找到键就可以找到相应的值.字典里的值可以是任何Python的类型,因此应用起来非常的灵活.

在这部分里我们将学到:

1.) 创建字典

2.) 提取字典里的信息

3.) 字典嵌套

4.) 常用字典函数方法

1.创建字典



创建字典

字典对于数据类型非常宽容,可以放置任何的数据类型。比如:


字典内部数据

将字典内部的值进行简单数学运算


简单数学运算

通过赋值来创建字典


赋值创建新字典

2.字典嵌套

简单理解,就是字典里面再包含字典,看下面的例子



字典嵌套

3.常用字典函数方法


常用字典函数方法


五、Python中的元组类型

元组和列表非常相似,不同的是元组是不能更改的,在表示不能更改的元素比如日期、时间等时使用元组。因为学过列表的相关知识,元组和列表的方法很相似。

1.创建元组


创建元组

2.基本函数方法

元组也有一些内置的函数方法,但是不如列表那么多。


基本函数方法

3.不可改变性

记住元组是不能改变的,一旦创建好的就只能保持原来的样子,删除元组元素或尝试增加元组元素都会报错。


不可改变性

六.Python中的集合和布尔值类型

Python中的集合和布尔值类型并不是重点,可以快速了解一下.

1.集合

set是一个无序且不重复的元素集合。


集合

请注意虽然有{},但并不是字典,虽然你可以把集合比作只有键的字典.我们知道集合的元素是唯一的不重复的,那如果我们尝试将重复的元素添加到集合里会是什么情况呢?


集合2

集合主要用于去重


去重

2.布林值

所谓 布林值 ( Boolean Value ) 就是一种只有 true 或 false 两种值的类型.


布林值

可以利用比较运算符创建布林值


运算符创建布林值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容