python 基础知识-字符串(列表,元组,列表,集合,字典)笔记2 权亮

3.1. 字符串
字符串是以单引号’或双引号"括起来的任意文本,比如’abc’,“xyz"等等,它是有序但是无法修改内容的。请注意,’'或”“本身只是一种表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c这3个字符。如果’本身也是一个字符,那就可以用”"括起来,比如"I’m OK"包含的字符是I,’,m,空格,O,K这6个字符。如果字符串内部既包含’又包含"怎么办?可以用转义字符\来标识.

  1. 转义字符
    这个字符可以转移很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是.
    如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r’‘表示’'内部的字符串默认不转义.

下面列举了转义字符的用法之一,将字符串中的’进行转义,防止计算机认为这是一段字符串.让计算机知道这\后面的’是一个’.

在这里插入图片描述

转义字符的列表如下:
在这里插入图片描述
2) 运算符
下面是是字符串的运算符
在这里插入图片描述

  1. 字符串的格式化

a) 方法一 format_string % obj
在这里插入图片描述

百分号右边的括号内是需要替换的内容.%s是字符串,%d是十进制整数.

下面是格式化字符的参考列表:
在这里插入图片描述

b) 方法二:str.format( ) 普通形式
在这里插入图片描述

c) 方法三:str.format( ) 接受参数形式
在这里插入图片描述

括号里的前后顺序可以调整.
3.2. 布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写).下图为布尔值的演示.
在这里插入图片描述

布尔值的运算
and运算是与运算,只有所有都为True,and运算结果才是True
or运算是或运算,只要其中有一个为True,or运算结果就是True.
0 or 1 or 2 结果为1,or的返回第一个遇见的为True的值.
not运算是非运算,它是一个单目运算符,把True变成False,False变成True

3.3. 列表
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可.
在这里插入图片描述
在将列表前,我们先介绍一个序列这个概念.
数据结构是以某种方式(如通过编号)组合起来的数据元素(如数、字符乃至其他数据结构)集合。在Python中,最基本的数据结构为序列(sequence)。
列表就是序列中的一种.它是可以修改的.
接下来我们来介绍序列的几种操作.

  1. 索引
    序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推。在
    有些编程语言中,从1开始给序列中的元素编号,但从0开始指出相对于序列
    开头的偏移量.
    在这里插入图片描述

如果记不住最后一个索引的位置,我们可以用-1表示.倒数第二个用-2表述.以此类推.

下面为一个练习题
在这里插入图片描述
2) 切片
除使用索引来访问单个元素外,还可使用切片(slicing)来访问特定范围内的元素。为此,
可使用两个索引,并用冒号分隔.
第一个索引是包含的第一个元素的编号,但第二个索引是切片后余下的第一个元素的编号.
如果要从列表末尾开始数,可使用负数索引,如果切片结束于序列末尾,可省略第二个索引, ,如果切片始于序列开头,可省略第一个索引,要复制整个序列,可将两个索引都省略
在这里插入图片描述
在这里插入图片描述

切片的第三个参数,步长,就是执行切片时候,从一个元素移到下一个元素,跳过几个元素,如果是1,或者省略,那就是一个一个元素的提取,如果是2就是两个元素的提取,如果是负数,就是从右往左提取.且第一个索引必须比第二个索引大
在这里插入图片描述

  1. 序列相加
    可使用加法运算符来拼接序列.

在这里插入图片描述

从错误消息可知,不能拼接列表和字符串,虽然它们都是序列。一般而言,不能拼接不同类
型的序
4) 序列乘法
序列与一个数字相乘时, 将重复这个序列这个数字的次数来创建一个新序列.

在这里插入图片描述
练习题 画一个方框,内部写一句话,我爱你中国.

在这里插入图片描述

  1. 成员资格
    要检查特定的值是否包含在序列中,可使用运算符in。它检查是否满足指定的条件,并返回相应的值:满足时返回True,不满足时返回False.

在这里插入图片描述

通过上面的操作我们可以看出来,查找字符需要外加引号,字符多个,需要时连续的,不能是跳跃的.

在这里插入图片描述

练习题
在这里插入图片描述

上面的练习题,利用in的方法,检查输入的用户名和pin code是否在数据库内.

长度,最大值,最小值

Len()函数返回的是序列的长度.
Max()函数返回的是序列最大的元素.
Min()函数返回的是序列最小的元素.

在这里插入图片描述

字符串的最大最小值, 比较的是第一位字符的ascii码大小.

在这里插入图片描述

接下来我们介绍列表的基本操作:
6) 修改列表
赋值给b,如下图所示,然后我们设置b[1]等于新的列表,结果如下.

在这里插入图片描述

不能给不存在的元素赋值.

  1. 删除元素
    在这里插入图片描述

删除后,列表将会发生彻底变化,元素减少.
8) 将切片赋值

在这里插入图片描述
切片赋值和修改列表区别不仅是可以一次性多个元素赋值,最关键是,可以改变列表的长度.
同时切片赋值还可以起到插入的作用,如上图的b[1:1]处,就是插入元素.
如果将某个位置的元素等于空,([])相当于删除.
9) 列表的方法
a) Append方法
方法append用于将一个对象附加到列表末尾。
如下图:append是增加列表,b[10:]=[]内是增加字符串和数字,需要增加列表,需要中括号内继续增加中括号.
在这里插入图片描述

b) Clear方法

方法clear就地清空列表的内容
在这里插入图片描述

Qw[:]=[]和 qw.clear()是一样的.

c) Copy方法
方法copy 复制列表
在这里插入图片描述

Copy方法不改变原本列表的结构.
d[2:4]=4 是不可以的,可以是字符串,d[2]=4是可以的.因为4不具有迭代能力,它就是一个值而已.

d) Count方法

方法count计算指定的元素在列表中出现了多少次.
在这里插入图片描述

e) Extend方法
方法extend让你能够同时将多个值附加到列表末尾,为此可将这些值组成的序列作为参数提
供给方法extend。
在这里插入图片描述

通过上面的操作我们可以看出,append是将一个值放在列表的后面.而extend是将值的每一个元素放在列表的后面.
f) Index方法
方法index在列表中查找指定值第一次出现的索引.
在这里插入图片描述
g) Insert方法
方法insert用于将一个对象插入列表.

在这里插入图片描述

list.insert(index, obj)是insert的格式.他和qwe[1:1]的方法是一样的.

h) Pop方法
方法pop从列表中删除一个元素(末尾为最后一个元素),并返回这一元素.
pop是唯一既修改列表又返回一个非None值的列表方法。

在这里插入图片描述

i) Remove方法
方法remove用于删除第一个为指定值的元素,只能是一个元素,不能多个.

在这里插入图片描述

j) Reverse方法
方法reverse按相反的顺序排列列表中的元素.

在这里插入图片描述

k) Sort方法
方法sort用于对列表就地排序。就地排序意味着对原来的列表进行修改,使其元素按顺序
排列,而不是返回排序后的列表的副本.
在这里插入图片描述

注意,字符串和数字不能比较.字符串比较,看的是第一位的字母的大小.

3.4. 元组

  1. 与列表一样,元组也是序列,唯一的差别在于元组是不能修改的(你可能注意到了,字符串
    也不能修改)。元组语法很简单,只要将一些值用逗号分隔,就能自动创建一个元组.
    在这里插入图片描述
    在这里插入图片描述

元组最重要的是每个元素之间有逗号.而且元组无法修改.但是可以找到最大值最小值.他是有序的.

  1. 关于元组无法修改的理解:
    在这里插入图片描述
    元组a的三个元素,无法改变,但是第二个元素是列表,列表内的元素是可以变化的,就算发生变化,元组a的元素仍然没有变化.仍然是数值,列表,数值.由于数值是无法改变的,所以也无法更换数值.(值得注意是,字符串也是不可改变的类型)
    同时元组满足相加和*n倍数的法则.
  2. 元组的方法和列表基本一样,只是增删等方法不可用.
    在这里插入图片描述
  3. 元组的切片和列表切片,一样理解
    在这里插入图片描述
    在这里插入图片描述
    b是空元组,c是一个元素的元组.

3.5. 集合
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
通过下图我们可以看出来,集合生成时,每个元素都必须是不可变的,而且会自动去重,和自动排序升序.
Set([1,2,3]),传入的[1,2,3]是一个list,但是Set([1,2,3])则是告诉set有三个元素.里面的[1,2,3]此时不是列表.
在这里插入图片描述

集合是可变的(set),也可以是不变的(frozenset),并且是无序的,所以没法索引.集合之间可以运算,例如,并集,交集,子集,差集,对称差

在这里插入图片描述

集合的方法
集合的方法有add,clear,copy,pop,remove等,和list差不多.值得注意的是pop()是随机删除一个元素.
在这里插入图片描述
在这里插入图片描述

3.6. 字典
字典的名称指出了这种数据结构的用途, 通过名称来访问其各个值的数据结构。这种数据结构称为映射(mapping)。字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下。键可能是数、字符串或元组。字典是可变的,可以储存任何类型的得对象.它的索引就是索引键,显示值.
字典的基本操作:
字典的索引是索引键,要修改值,必须索引相对应的键.成员资格的中只能查询键的存在与否,不能查值.创建时同一个键不允许出现两次,如果出现,会自动记住后面输入的键.键必须不可变,可以使用字符串,数字,或者元组,但是不是使用列表.

在这里插入图片描述

和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而增加;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章