容器
序列
列表
- 性质特点:
1.列表是容器型数据类型;将[]作为容器标志,里面多个元素用逗号隔开: [元素1, 元素2, 元素3, …]
2.列表是可变的(可变指的是元素的个数、值和顺序可变 - 支持增删改);列表有序(支持下标操作)
3.列表中元素:任何类型的数据都可以作为列表的元素。(没有要求)
4.同一个列表中的元素可以是不同类型的数据
- 获取列表元素
- 获取单个元素语法:列表[下标]
- 1.使用多个变量同时获取列表或者元组的元素
2.要求变量的个数必须和元组/列表元素的个数保持一致
- 获取部分元素语法:列表[开始下标:结束下标:步长]
- 3.使用多个变量同时获取列表或者元组的元素
当变量的个数小于元素的个数的时候,必须在某一个变量前加*
4.获取的时候先让不带的变量按照顺序获取对应的数据,把剩下的全部保存到带的变量中。
- 获得部分元素---遍历
- 方法一 - 直接获取元素
for 变量 in 列表: 循环体 - 方法二 - 通过获取每个元素的下标来获取元素 for 变量 in range(列表长度): 循环体 - 变量依次获取的时候列表中元素的下标
- 增减删元素
- 1.增--添加元素
1)列表.append(元素) —将元素添加到列表的最后 2)列表.insert(下标,元素) —将元素插入到指定下标前 - 2. 删 --删除元素 1)del 列表[下标] - 删除指定下标对应 2)列表.remove(元素) - 删除指定元素 如果元素不存在会报错;如果元素有多个,只删最前面那一个 3) 列表.pop() - 取出最后一个元素,并且返回 列表.pop(下标) - 取出指定下标对应的元素,并且返回
- 3.改 --改变元素
列表[下标]=值 将列表中指定下标对应的元素改成指定的值
- in
- 元素 in 列表 - 判断列表中是否存在指定的元素
- 元素 not in 列表 - 判断列表中是否不存在指定元素
- 列表相关的运算符
- 1.数学运算符:+、*
列表1+列表2 -将两个列表中元素合并成为一个新的列表 列表N/N列表- 列表中的元素重复n次,产生一个新的列表 eg:list2=[10,20] print(list2*2) #[10,20,10,20] - 2.比较运算符:>、<、>=、<=、、!= 补充:不同的类型可以是用和!=来比较是否相等,但是不能使用>、<、>=、<=来比较大小 两个列表比较大小的时候比较的是第一对儿不相等的元素的大小。 - 列表相关函数: max(序列) - 获取序列中最大的元素 min(序列) - 获取序列中最小的元素 sum(数字序列) - 求序列中所有元素的和 sorted(序列) - 将序列中的元素从小到大排序,产生一个新的列表 sorted(序列, reverse=True) - 将序列中的元素从大到小排序,产生一个新的列表 len(序列) - 获取序列中元素的个数 list(序列) - 将序列的元素作为列表的元素创建一个新的列表 - 列表相关方法:1.列表.clear()-清空列表 2.列表.copy() -复制列表产生一个一模一样的新列表 3. 列表.count(元素) - 统计列表中指定元素的个数 4. 列表.extend(序列) - 将序列中的元素全部添加到列表中 5. 列表.index(元素) - 获取元素在列表中的下标值(0开始的下标值) 6.列表.reverse() - 列表逆序
- 列表推导式:1.推导式结构:[表达式 for 变量 in 序列]
- 列表推导式2:[表达式 for 变量 in 序列 if 条件语句]
-
元组就是不可变的列表;有序
- 查、in和not in、数学运算、比较运算、相关函数 - 元组都支持
字典
字典.get(键) - 获取指定键对应的值,键不存在返回None 字典.get(键, 默认值) - 获取指定键对应的值,键不存在返回指定默认值 2)遍历(了解) for 键 in 字典: pass 2. 增、改 字典[键] = 值 - 如果键存在就修改指定键对应的值;如果键不存在就添加键值对
字典.setdefault(键, 值) - 添加键值对(只添加不修改)
- 删 - 删除键值对
-
del 字典[键] - 删除指定键对应的键值对 -
字典.pop(键) - 取出指定键对应的值 - 字典推导
{表达式1:表达式2 for 变量 in 序列} {表达式1:表达式2 for 变量 in 序列 if 条件语句} 字典1.update(字典2) - 将字典2中所有的键值对都添加到字典1 - 字典.values() - 获取字典所有的值,返回一个新的序列 字典.keys() - 获取字典所有的键,返回一个新的序列 字典.items() - 获取所有的键和值,每一个键值对对应一个元组,返回一个新的序列
- 字典相关操作函数和方法:
- 运算符
相对列表,字典不支持: +、*、比较大小 2.相关函数:dict(数据) - 将数据转换成字典 数据的要求:
- 这个数据必须是一个序列
- 序列中元素必须是有且只有两个元素的小序列, 两个元素中第一个元素是不可变的数据
- 相关方法
- 字典.clear() - 清空字典
- 字典.copy() - 赋值字典产生一个一模一样的新字典(地址不同)
集合
1.性质特点:
- 集合是容器型数据类型;将{}作为容器的标志,里面多个元素用逗号隔开:{元素1, 元素2, 元素3,…}
- 可变的;无序
- 元素的要求:
a.必须是不可变类型的数据 b.元素是唯一的 (自动去重)
2.增删改查(了解)
1)查 — 只能遍历 2)增 — 集合.add(元素) — 将元素添加到集合中 3)删 — 集合.remove(元素)— 删除指定元素,元素不存在报错 集合.discard(元素) — 删除指定元素,元素不存在不报错 4)改 - 没有改的语法,如果要改就删除旧的,添加新的
3.python中的集合支持的数学集合运算:并集(|)、交集(&)、差集(-)、对称差集(^)、子集(>=、<=)、真子集(>、<)
字符串
1.性质概念:1)字符串是容器型数据类型;将’’、""、""""""、’’’’’'作为容器的标志,里面的每一个符号就是它的一个元素。
2)字符串不可变;字符串有序 3)字符串元素:引号中的每一个符号都是字符串的元素,又叫字符。 字符分为普通字符和转义字符两种: 普通字符 - 在字符串中表示符号本身的字符
- 字符串作为容器的操作:
字符串不可变,所以只支持查操作
- 查 - 获取字符
字符串获取字符和列表获取元素对应的语法一模一样的
-
- in 和 not in
字符串1 in 字符串2 - 判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的子串)
2.转义字符:
1)在特定的一些符号前加\来表示特殊功能或者特殊意义的符号 常用的转义字符: \n - 换行(相当于按回车) \t - 水平制表符(相当于按tab键) ’ - 一个普通的单引号 " - 一个普通的单引号 \ - 一个普通的反斜杠 2) R语法
如果在字符串的最前面加r或者R可以让字符串中所有的转义字符功能消失,每个符号都会变成普通字符
-
- 字符串1 + 字符串2 - 将两个字符串合并成一个字符串
-
- 字符串1 * N 、 N * 字符串 - 字符串重复N次产生一个新的字符串
-
- 比较运算 : ==、!=
比较大小:>=、<=、>、< 两个字符串比较大小比较的是第一对不相等的字符的编码值的大小 - 应用:比较字符大小来判断字符的类型
判断是否是数字字符: ‘0’ <= x <= ‘9’ 判断是否是小写字母: ‘a’ <= x <= ‘z’ 判断是否是字母: ‘a’ <= x <= ‘z’ or ‘A’ <= x <= ‘Z’ 判断是否是中文: ‘\u4e00’ <= x <= ‘\u9fa5’
1.计算机存储数据的原理:计算机只具备存储数字的能力
2.字符编码:为了能够让计算机存储文字信息,给每一个符号对应了一个固定的数字,每次需要存储文字符号的时候就存储这个符号对应的数字。这个数字就是这个符号编码值。 3.编码表:保存不同字符对应的编码值的表 1)ASCII码表 有128个符号(美国符号) 数字在大写字母的前面,大写字母在小写字母前面,大写字母和小写字母之间有间隙 2)Unicode编码表(Python) Unicode编码表中包含了ASCII码表 Unicode包含了世界上所有的国家所有的民族的所有符号,又叫万国码 中文范围:4e00 ~ 9fa5 4.Python对编码值的使用 1)chr函数 chr(编码值) - 获取编码值对应的字符 2)ord函数 ord(字符) - 获取字符对应的编码值 3)编码字符 \u4的16进制数 - 创建一个字符,字符就是4的16进制数作为编码值对应的字符
-
max、min、sorted -
len len(字符串) - 统计字符串中字符的个数 -
str str(数据) - 将数据转换成字符串 a. 所有的数据都可以转换成字符串 b. 转换的时候直接在数据的打印值外面加引号 -
eval eval(字符串) - 将字符串的内容转换成有效代码计算结果 (去掉字符串的引号获取结果)
-
- center、rjust、ljust、zfill
字符串.center(宽度, 填充字符) xabcx 字符串.rjust(宽度, 填充字符) xxabc 字符串.ljust(宽度, 填充字符) abcxx 字符串.zfill(宽度) == 字符串.rjust(宽度, ‘0’) 00abc
- count
字符串1.count(字符串2) - 统计字符串1中字符串2的个数 字符串1.count(字符串2, 开始下标, 结束下标) - 统计字符串1中指定范围内字符串2出现的次数,范围:[开始下标, 结束下标) - endswith
字符串1.endswith(字符串2) - 判断字符串1是否以字符串2结束 4.find、rfind、index、rindex 字符串1.find(字符串2) - 获取字符串1中第一个字符串2出现的位置,如果字符串2不存在返回-1 字符串1.index(字符串2) - 获取字符串1中第一个字符串2出现的位置,如果字符串2不存在报错!
字符串1.find(字符串2, 开始下标, 结束下标) 字符串1.index(字符串2, 开始下标, 结束下标)
字符串1.rfind(字符串2) - 获取字符串1中最后一个字符串2出现的位置,如果字符串2不存在返回-1 字符串1.rindex(字符串2) - 获取字符串1中最后一个字符串2出现的位置,如果字符串2不存在报错!
字符串1.rfind(字符串2, 开始下标, 结束下标) 字符串1.rindex(字符串2, 开始下标, 结束下标)
- 5.
字符串.isalnum() - 判断字符串中所有的字符是否全是数字、字母或者中文 字符串.isalpha() - 判断字符串中所有的字符是否是字母或者中文
字符串.isdigit() - 判断字符串中所有的字符是否全是数字(只把0~9看数字) 字符串.isnumeric() - 判断字符串中所有的字符是否全是数字字符(将所有独立存在表示一个数值的符号都看成数字)
字符串.islower() - 判断字符串中所有的字符是否全是小写字母 字符串.isupper() - 判断字符串中所有的字符是否全是大写字母 (常用!)字符.islower() - 判断指定字符是否是小写字母 (常用!)字符.isupper() - 判断指定字符是否是大写字母
字符串.isspace() - 判断字符串中所有的字符是否都是空白字符
- 6.join(!)
字符串.join(序列) - 将序列中的元素通过指定的字符串连接成一个新的字符串 注意:序列中的元素必须全是字符串
- 10. replace(!)
字符串1.replace(字符串2, 字符串3) - 将字符串1中所有的字符串2都替换成字符串3
字符串1.replace(字符串2, 字符串3, N) - 将字符串1中前N个字符串2都替换成字符串3 - 11. split(!) 字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串1进行切割,返回一个列表 字符串1.split(字符串2, N) - 将字符串1中前N个字符串2作为切割点对字符串1进行切割
- 7.lower、upper
字符串.lower() - 将字符串中所有的大写字母都转换成小写字母 字符串.upper() - 将字符串中所有的小写字母都转换成大写字母 - 8.strip、lstrip、rstrip 字符串.strip() - 删除字符串前后的空白字符 字符串.lstrip() - 删除字符串前面的空白字符 字符串.rstrip() - 删除字符串后面的空白字符 - 9. maketrans、translate 1)str.maketrans(字符串1, 字符串2) - 让字符串1中的字符与字符串2中的字符创建一个对应关系表 注意:字符串1的长度和字符串2的长度必须一致 例如: str.maketrans(‘abc’, ‘123’) - 建立一个a和1对应,b和2对应,c和3对应的关系表
2)字符串.translate(字符对应关系表) - 将字符串中的字符按照字符对应关系表对字符进行替换
进制
数字常见的表示方式有4种:二进制、八进制、十进制、十六进制
1. 十进制
基数:0,1,2,3,4,5,6,7,8,9 表示方式:直接写 转换方法:print(其他进制的数)
2. 二进制
基数:0、1 表示方式: 加前缀0b、0B 转换方法:bin(其他进制的数)
3.八进制
基数:0、1、2、3、4、5、6、7 表示方式:加前缀0o、0O 转换方式:oct(其他进制的数据)
4.十六进制
基数:0、1、2、3、4、5、6、7、8、9、a/A、b/B、c/C、d/D、e/E、f/F 表示方式:加前缀0x、0X 转换方式:hex(其他进制的数)
XMind - Trial Version
|