700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 8_python基础—高级变量类型(字符串 列表 元组 字典 集合)

8_python基础—高级变量类型(字符串 列表 元组 字典 集合)

时间:2022-04-17 20:03:06

相关推荐

8_python基础—高级变量类型(字符串 列表 元组 字典 集合)

文章目录

一、字符串 str,有序序列(支持下标)不可变1.1 字符串的定义1.2 字符串的常用操作1) 判断类型 - 92) 查找和替换 - 73) 大小写转换 - 54) 文本对齐 - 35) 去除空白字符 - 36) 拆分和连接 - 51.3 字符串的切片索引的顺序和倒序二、 列表 list( ),有序(支持下标)可变序列2.1 列表的定义2.2 列表常用操作2.2.1 del 关键字(科普)2.2.2 关键字、函数和方法(科普)2.3 循环遍历2.4 列表嵌套2.5 应用场景三、元组 tuple( ),有序(支持下标)不可变3.1 元组的定义3.1.1 创建空元组3.1.2 元组中 只包含一个元素 时,需要 在元素后面添加逗号3.2 元组常用操作3.3 循环遍历3.4 应用场景3.5 元组和列表之间的转换四、字典 dict( ),无序(不支持索引)可变4.1 字典的定义4.2 字典常用操作4.3 循环遍历4.3.1 遍历字典的key4.3.2 遍历字典的value4.3.3 遍历字典的元素4.3.4 遍历字典的键值对(拆包)4.4 应用场景五、集合 set( ),无序可变(不支持索引),元素唯一5.1 创建集合5.2 集合常见操作方法

一、字符串 str,有序序列(支持下标)不可变

1.1 字符串的定义

字符串就是一串字符,是编程语言中表示文本的数据类型在 Python 中可以使用一对双引号"或者一对单引号'定义一个字符串 虽然可以使用\"或者\'做字符串的转义,但是在实际开发中: 如果字符串内部需要使用",可以使用'定义字符串如果字符串内部需要使用',可以使用"定义字符串 可以使用索引获取一个字符串中指定位置的字符,索引计数从0开始也可以使用for循环遍历字符串中每一个字符

大多数编程语言都是用"来定义字符串

string = "Hello Python"for c in string:print(c)

1.2 字符串的常用操作

ipython3中定义一个字符串,例如:hello_str = ""输入hello_str.按下TAB键,ipython会提示字符串能够使用的方法如下:

In [1]: hello_str.hello_str.capitalize hello_str.isidentifier hello_str.rindexhello_str.casefoldhello_str.islower hello_str.rjusthello_str.center hello_str.isnumerichello_str.rpartitionhello_str.count hello_str.isprintable hello_str.rsplithello_str.encode hello_str.isspace hello_str.rstriphello_str.endswithhello_str.istitle hello_str.splithello_str.expandtabs hello_str.isupper hello_str.splitlineshello_str.findhello_str.joinhello_str.startswithhello_str.format hello_str.ljust hello_str.striphello_str.format_map hello_str.lower hello_str.swapcasehello_str.index hello_str.lstrip hello_str.titlehello_str.isalnum hello_str.maketranshello_str.translatehello_str.isalpha hello_str.partitionhello_str.upperhello_str.isdecimalhello_str.replace hello_str.zfillhello_str.isdigit hello_str.rfind

提示:正是因为 python 内置提供的方法足够多,才使得在开发时,能够针对字符串进行更加灵活的操作!应对更多的开发需求!

1) 判断类型 - 9

2) 查找和替换 - 7

hello_str = "hello world"# 1. 判断是否以指定字符串开始,Falseprint(hello_str.startswith("Hello"))# 2. 判断是否以指定字符串结束,Trueprint(hello_str.endswith("world"))# 3. 查找指定字符串# index同样可以查找指定的字符串在大字符串中的索引print(hello_str.find("llo")) # 2# index如果指定的字符串不存在,会报错# find如果指定的字符串不存在,会返回-1print(hello_str.find("abc"))# 4. 替换字符串# replace方法执行完成之后,会返回一个新的字符串# 注意:不会修改原有字符串的内容print(hello_str.replace("world", "python")) # hello pythonprint(hello_str) # hello world

3) 大小写转换 - 5

4) 文本对齐 - 3

5) 去除空白字符 - 3

# 假设:以下内容是从网络上抓取的# 要求:顺序并且居中对齐输出以下内容poem = ["\t\n登鹳雀楼","王之涣","白日依山尽\t\n","黄河入海流","欲穷千里目","更上一层楼"]for poem_str in poem:# 先使用strip方法去除字符串中的空白字符# 再使用center方法居中显示文本print("|%s|" % poem_str.strip().center(10, ""))

6) 拆分和连接 - 5

# 假设:以下内容是从网络上抓取的# 要求:# 1. 将字符串中的空白字符全部去掉# 2. 再使用 " " 作为分隔符,拼接成一个整齐的字符串poem_str = "登鹳雀楼\t 王之涣 \t 白日依山尽 \t \n 黄河入海流 \t\t 欲穷千里目 \t\t\n更上一层楼"print(poem_str)# 1. 拆分字符串poem_list = poem_str.split()print(poem_list)# 2. 合并字符串result = " ".join(poem_list)print(result)

1.3 字符串的切片

切片方法适用于字符串列表元组切片使用索引值来限定范围,从一个大的字符串切出小的字符串列表元组都是有序的集合,都能够通过索引值获取到对应的数据字典是一个无序的集合,是使用键值对保存数据

字符串[开始索引:结束索引:步长]

注意

指定的区间属于左闭右开[开始索引, 结束索引)=>开始索引 >= 范围 < 结束索引起始位开始,到结束位的前一位结束(不包含结束位本身) 从头开始,开始索引数字可以省略,冒号不能省略到末尾结束,结束索引数字可以省略,冒号不能省略步长默认为1,如果连续切片,数字和冒号都可以省略

索引的顺序和倒序

在 Python 中不仅支持顺序索引,同时还支持倒序索引所谓倒序索引就是从右向左计算索引 最右边的索引值是-1,依次递减

演练需求

截取从 2 ~ 5 位置 的字符串 截取从 2 ~末尾的字符串 截取从开始~ 5 位置 的字符串 截取完整的字符串 从开始位置,每隔一个字符截取字符串 从索引 1 开始,每隔一个取一个 截取从 2 ~末尾 - 1的字符串 截取字符串末尾两个字符 字符串的逆序(面试题)

答案

num_str = "0123456789"# 1. 截取从 2 ~ 5 位置 的字符串,"2345"print(num_str[2:6])# 2. 截取从 2 ~ `末尾` 的字符串,"23456789"print(num_str[2:])# 3. 截取从 `开始` ~ 5 位置 的字符串,"012345"print(num_str[:6])# 4. 截取完整的字符串,"0123456789"print(num_str[:])# 5. 从开始位置,每隔一个字符截取字符串,"02468"print(num_str[::2])# 6. 从索引 1 开始,每隔一个取一个,"13579"print(num_str[1::2])# 倒序切片# -1 表示倒数第一个字符,"9"print(num_str[-1])# 7. 截取从 2 ~ `末尾 - 1` 的字符串,"2345678"print(num_str[2:-1])# 8. 截取字符串末尾两个字符,"89"print(num_str[-2:])# 9. 字符串的逆序(面试题),"9876543210"print(num_str[::-1])

二、 列表 list( ),有序(支持下标)可变序列

2.1 列表的定义

List(列表) 是Python中使用最频繁的数据类型,在其他语言中通常叫做数组专门用于存储一串 信息列表用[]定义,数据之间使用,分隔列表的索引0开始索引就是数据在列表中的位置编号,索引又可以被称为下标

注意:从列表中取值时,如果超出索引范围,程序会报错

name_list = ["zhangsan", "lisi", "wangwu"]

2.2 列表常用操作

ipython3中定义一个列表,例如:name_list = []输入name_list.按下TAB键,ipython会提示列表能够使用的方法如下:

In [1]: name_list.name_list.append name_list.count name_list.insert name_list.reversename_list.clear name_list.extend name_list.popname_list.sortname_list.copyname_list.index name_list.remove

name_list = ['TOM', 'Lily', 'ROSE']name_list.append([11, 22])# 结果:['TOM', 'Lily', 'ROSE', [11, 22]]print(name_list)# 1. 列表数据可改的 -- 列表可变类型# 2. append函数追加数据的时候如果数据是一个序列,追加整个序列到列表的结尾

extend( ):列表结尾追加数据,如果数据是一个序列,把数据序列里面的数据拆开然后逐一追加到列表的结尾。

name_list = ['TOM', 'Lily', 'ROSE']# name_list.extend('xiaoming')name_list.extend(['xiaoming', 'xiaohong'])# 结果 ['TOM', 'Lily', 'ROSE', 'xiaoming', 'xiaohong']print(name_list)# extend() 追加数据是一个序列,把数据序列里面的数据拆开然后逐一追加到列表的结尾

2.2.1 del 关键字(科普)

使用del关键字(delete) 同样可以删除列表中元素del关键字本质上是用来将一个变量从内存中删除的如果使用del关键字将变量从内存中删除,后续的代码就不能再使用这个变量了

del name_list[1]

在日常开发中,要从列表删除数据,建议使用列表提供的方法

2.2.2 关键字、函数和方法(科普)

关键字是 Python 内置的、具有特殊意义的标识符

In [1]: import keywordIn [2]: print(keyword.kwlist)In [3]: print(len(keyword.kwlist))

关键字后面不需要使用括号

函数封装了独立功能,可以直接调用

函数名(参数)

函数需要死记硬背

方法和函数类似,同样是封装了独立的功能方法需要通过对象来调用,表示针对这个对象要做的操作

对象.方法名(参数)

在变量后面输入.,然后选择针对这个变量要执行的操作,记忆起来比函数要简单很多

2.3 循环遍历

遍历就是从头到尾依次列表中获取数据

循环体内部针对每一个元素,执行相同的操作

Python中为了提高列表的遍历效率,专门提供的迭代 iteration 遍历

使用for就能够实现迭代遍历

# for 循环内部使用的变量 in 列表for name in name_list:循环内部针对列表元素进行操作print(name)

2.4 列表嵌套

所谓列表嵌套指的就是一个列表里面包含了其他的子列表。应用场景:要存储班级一、二、三三个班级学生姓名,且每个班级的学生姓名在一个列表。

name_list = [['TOM', 'Lily', 'Rose'], ['张三', '李四', '王五'], ['xiaohong', 'xiaoming', 'xiaolv']]# 第一步,按下标查找到LiLy所在的列表,['TOM', 'Lily', 'Rose']print(name_list[0])# 第二步:从LiLy所在的列表里面,再按下标找到数据LiLy# Lilyprint(name_list[0][1])

2.5 应用场景

尽管Python列表中可以存储不同类型的数据但是在开发中,更多的应用场景是列表存储相同类型的数据通过迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作

三、元组 tuple( ),有序(支持下标)不可变

3.1 元组的定义

Tuple(元组)与列表类似,不同之处在于元组的元素不能修改元组表示多个元素组成的序列元组Python开发中,有特定的应用场景 用于存储一串 信息数据之间使用,分隔元组用()定义元组的索引0开始索引就是数据在元组中的位置编号

info_tuple = ("zhangsan", 18, 1.75)

3.1.1 创建空元组

info_tuple = ()

3.1.2 元组中 只包含一个元素 时,需要 在元素后面添加逗号

info_tuple = (50, )

3.2 元组常用操作

ipython3中定义一个元组,例如:info = ()输入info.按下TAB键,ipython会提示元组能够使用的函数如下:

info.count info.index

有关元组常用操作可以参照上图练习

3.3 循环遍历

取值就是从元组中获取存储在指定位置的数据遍历就是从头到尾依次元组中获取数据

# for 循环内部使用的变量 in 元组for item in info:循环内部针对元组元素进行操作print(item)

Python中,可以使用for循环遍历所有非数字型类型的变量:列表元组字典以及字符串提示:在实际开发中,除非能够确认元组中的数据类型,否则针对元组的循环遍历需求并不是很多

3.4 应用场景

尽管可以使用for in遍历元组但是在开发中,更多的应用场景是:函数的 参数 和 返回值,一个函数可以接收任意多个参数,或者一次返回多个数据有关函数的参数 和 返回值,在后续函数高级给大家介绍格式字符串,格式化字符串后面的()本质上就是一个元组让列表不可以被修改,以保护数据安全

info = ("zhangsan", 18)print("%s 的年龄是 %d" % info)

3.5 元组和列表之间的转换

使用list函数可以把元组转换成列表

list(元组)

使用tuple函数可以把列表转换成元组

tuple(列表)

四、字典 dict( ),无序(不支持索引)可变

4.1 字典的定义

dictionary(字典) 是除列表以外Python之中最灵活的数据类型字典同样可以用来存储多个数据通常用于存储描述一个物体的相关信息和列表的区别列表有序的对象集合字典无序的对象集合 字典用{}定义字典使用键值对存储数据,键值对之间使用,分隔key是索引value是数据之间使用:分隔键必须是唯一的可以取任何数据类型,但只能使用字符串数字元组

dict1 = {'name': 'Python', 'age': 30}dict2 = {}dict3 = dict()

xiaoming = {"name": "小明","age": 18,"gender": True,"height": 1.75}

4.2 字典常用操作

ipython3中定义一个字典,例如:xiaoming = {}输入xiaoming.按下TAB键,ipython会提示字典能够使用的函数如下:

In [1]: xiaoming.xiaoming.clear xiaoming.items xiaoming.setdefaultxiaoming.copy xiaoming.keys xiaoming.update (合并字典)xiaoming.fromkeys xiaoming.pop xiaoming.valuesxiaoming.get xiaoming.popitem

有关字典常用操作可以参照上图练习

xiaoming_dict = {"name": "小明"}# 1. 取值print(xiaoming_dict["name"])# 在取值的时候,如果指定的key不存在,程序会报错!# print(xiaoming_dict["name123"])# 2. 增加/修改# 如果key不存在,会新增键值对xiaoming_dict["age"] = 18# 如果key存在,会修改已经存在的键值对xiaoming_dict["name"] = "小小明"# 3. 删除xiaoming_dict.pop("name")# 在删除指定键值对的时候,如果指定的key不存在,程序会报错!# xiaoming_dict.pop("name123")print(xiaoming_dict)

4.3 循环遍历

遍历就是依次字典中获取所有键值对

# for 循环内部使用的 `key 的变量` in 字典for k in xiaoming:print("%s: %s" % (k, xiaoming[k]))

提示:在实际开发中,由于字典中每一个键值对保存数据的类型是不同的,所以针对字典的循环遍历需求并不是很多

4.3.1 遍历字典的key

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}for key in dict1.keys():print(key)

name

age

gender

4.3.2 遍历字典的value

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}for value in dict1.values():print(value)

Tom

20

4.3.3 遍历字典的元素

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}for item in dict1.items():print(item)

(‘name’, ‘Tom’)

(‘age’, 20)

(‘gender’, ‘男’)

4.3.4 遍历字典的键值对(拆包)

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}for key, value in dict1.items():print(f'{key} = {value}')

name = Tom

age = 20

gender = 男

4.4 应用场景

尽管可以使用for in遍历字典但是在开发中,更多的应用场景是: 使用多个键值对,存储描述一个物体的相关信息—— 描述更复杂的数据信息将多个字典放在一个列表中,再进行遍历,在循环体内部针对每一个字典进行相同的处理

card_list = [{"name": "张三","qq": "12345","phone": "110"},{"name": "李四","qq": "54321","phone": "10086"}]for card_info in card_list:print(card_info)

{‘name’: ‘张三’, ‘qq’: ‘12345’, ‘phone’: ‘110’}

{‘name’: ‘李四’, ‘qq’: ‘54321’, ‘phone’: ‘10086’}

五、集合 set( ),无序可变(不支持索引),元素唯一

5.1 创建集合

创建集合使用{}set(), 但是如果要创建空集合只能使用set(),因为{}用来创建空字典。

s1 = {10, 20, 30, 40, 50, 50} print(s1) # {40, 10, 50, 20, 30}s3 = set()print(s3)# set()

特点:

集合可以去掉重复数据;集合数据是无序的,故不支持下标

5.2 集合常见操作方法

s1 = {10, 20, 30, 40, 50}print(10 in s1) # Trueprint(10 not in s1) # False

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。