Python核心编程 --- 高级数据类型

Python核心编程 — 高级数据类型

  • 字符串

  • 列表

  • 元组

  • 字典

1.序列

序列:一组按顺序排列的数据集合。

在Python中存在三种内置的序列类型:字符串、列表、元组

优点:可支持索引和切片操作

特点:第一个正索引为0,指向是左端,第一个索引是负数时,指向是右端。

1.1 切片

作用:可根据下标来获取序列对象的任意部分数据。

语法结构:序列[起始下标:结束下标:步长]

说明:从序列中,从指定位置开始,依次取出元素,到指定位置时结束,得到一个新序列。

  • 起始下标表示的是从哪开始,可以留空,留空视为从头开始

  • 结束下标表示从哪结束,可以留空,留空视为到结尾结束

  • 步长表示,依次取出元素的间隔,如步长1表示一个个取出元素,步长2表示每次跳过一个元素取,步长为负数时,反向取元素。

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
ret1 = num_list[1:5]   # 步长可省略不写,默认为1
print(f"结果1为{ret1}")

num_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
ret2 = num_list[:]
print(f"结果2为{ret2}")

num_str = "12345678910"
ret3 = num_list[::2]
print(f"结果3为{ret3}")

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
ret4 = num_list[::-1]   # 步长可省略不写,默认为1
print(f"结果4为{ret4}")

num_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
ret5 = num_list[3:1:-1]
print(f"结果5为{ret5}")

num_str = "12345678910"
ret6 = num_str[::-2]
print(f"结果6为{ret6}")

在这里插入图片描述

补充:下标会越界,切片不会。

2.字符串及常用方法

2.1 下标索引
  • 从前向后,下标从0开始

  • 从后向前,下标从-1开始

2.2 查找特定字符串的下标索引值

语法结构:字符串.index(字符串)

names_str = "Hello"
print(names_str.index("o")) # 4
2.3 字符串的替换

语法结构:字符串.replace(字符串1, 字符串2)

作用:字符串1替换字符串2,字符串内的全部。

my_str = "Hello"
print(my_str.replace("He", "haha")) # hahallo
2.4 字符串的分割

作用:按指定的分隔符字符串,划分为多个字符串存入列表对象中。

my_str = "He ll o wo rl d"
print(my_str.split(" ")) # ['He', 'll', 'o', 'wo', 'rl', 'd']
2.5 字符串的规整操作
  • 去前后空格

语法结构:字符串.strip()

name_str = " he l l o  "
print(name_str.strip()) # "he l l o"
  • 去前后指定字符串

语法结构:字符串.strip(字符串)

name_str = "hellooeh"
print(name_str.strip('he')) # "llo"

注意:传入的是”he“,其实"h"和"e"都会被移除,按照单个字符。

2.6 统计字符串的字符个数

语法结构:len(字符串)

num = len(name_str)
print(f"字符串{name_str}的长度是:{num}") # 字符串hello的长度是:5
2.7 总结
1 字符串[下标] 据下标索引取出特定位置的字符
2 字符串.index(字符串) 查找特定字符串的下标索引值
3 字符串.replace(字符串1, 字符串2) 字符串1替换字符串2,字符串内的全部。
4 字符串.split(分隔符字符串) 按指定的分隔符字符串,划分为多个字符串存入列表对象中。
5 字符串.strip() 字符串.strip(字符串) 移除首尾的空格或指定字符串
6 字符串.count(字符串) 统计某字符串中某字符串出现的次数
7 len(字符串) 统计字符串的字符个数
2.8 字符串的遍历 - while循环
str = "hello"
index = 0
while index < len(str):
    print(str[index])
    index += 1
2.9 字符串的遍历 - for循环
str = "hello"
index = 0
for i in str:
    print(i)
2.10 特点
  • 只可存储字符串

  • 长度任意

  • 支持下标索引

  • 允许重复字符串存在

  • 不可修改

  • 支持for循环

3.列表及常用操作

功能:

  • 插入元素

  • 删除元素

  • 修改元素

  • 统计元素个数

  • 清空列表

3.1 查找指定某元素的下标

语法结构:列表.index(元素)

name_list = ["he", "ll", "o"]
index = name_list.index("ll")
print(f"ll在列表中的下标索引值为:{index}")
# 输出:ll在列表中的下标索引值为:1
3.2 修改指定位置的元素值

语法结构:列表[下标] = 值

name_list = ["he", "ll", "o"]
name_list[1] = "he"
print(f"列表中的下标1的值被改后,结果是:{name_list}")
# 输出:列表中的下标1的值被改后,结果是:['he', 'he', 'o']
3.3 插入元素

说明:在指定的位置,插入指定的元素。

语法结构:列表.insert(下标, 元素)

name_list = ["he", "ll", "o"]
name_list.insert(1, "ha")
print(f"列表中的下标1的位置被插入指定元素后,结果是:{name_list}")
# 输出:列表中的下标1的位置被插入指定元素后,结果是:['he', 'ha', 'll', 'o']
3.4 追加元素方式1

说明:将指定元素,追加到列表的尾部。

语法结构:列表.append(元素)

name_list = ["he", "ll", "o"]
name_list.append("hehe")
print(f"列表追加了元素后,结果是:{name_list}")
# 输出:列表追加了元素后,结果是:['he', 'll', 'o', 'hehe']
3.5 追加元素方式2

说明:将其他数据容器的内容取出,依次追加到列表尾部。

语法结构:列表.extend(其他数据类型)

name_list = ["he", "ll", "o"]
name_list.extend(["wo", "r", "ld"])
print(f"列表追加了元素后,结果是:{name_list}")
# 输出:列表追加了元素后,结果是:['he', 'll', 'o', 'wo', 'r', 'ld']
3.6 删除元素

语法结构1:del 列表[下标]

语法结构2:列表.pop(下标)

# 方法1
name_list = ["he", "ll", "o"]
del name_list[1]
print(f"列表被删除元素后,结果是:{name_list}")
# 输出:列表被删除元素后,结果是:['he', 'o']

# 方法2
name_list = ["he", "ll", "o"]
name_list.pop(1)
print(f"列表被删除元素后,结果是:{name_list}")
# 输出:列表被删除元素后,结果是:['he', 'o']
3.7 删除某元素在列表中的第一个匹配项

语法结构:列表.remove(元素)

name_list = ["he", "ll", "o", "he"]
name_list.remove("he")
print(f"列表被移除元素后,结果是:{name_list}")
# 输出:列表被移除元素后,结果是:['ll', 'o', 'he']
3.8 清空列表

语法结构:列表.clear()

name_list = ["he", "ll", "o", "he"]
name_list.clear()
print(f"列表被清空后,结果是:{name_list}")
# 输出:列表被清空后,结果是:[]
3.9 统计某元素在列表中的数量

语法结构:列表.count(元素)

name_list = ["he", "ll", "o", "he"]
print(f"列表中he的数量是:{name_list.count("he")}")
# 输出:列表中he的数量是:2
3.10 统计列表元素个数

语法结构:len(列表)

name_list = ["he", "ll", "o", "he"]
print(f"列表中的元素个数有:{len(name_list)}")
# 输出:列表中的元素个数有:4
3.11 总结
编号 使用方法 作用
1 列表.append(元素) 在列表中追加一个元素到尾部
2 列表.extend(容器) 其他数据容器内容取出,依次追加到列表尾部。
3 列表.insert(下标, 元素) 在指定的位置,插入指定的元素。
4 del 列表[下标] 删除列表指定下标元素
5 列表.pop(下标) 删除列表指定下标元素
6 列表.remove(元素) 删除某元素在列表中的第一个匹配项
7 列表.clear() 清空列表
8 列表.count(元素) 统计某元素在列表中的数量
9 列表.index(元素) 查找指定某元素的下标
10 len(列表) 统计列表元素个数
3.12 列表的特点
  • 可容纳多个元素

  • 可容纳不同类型的元素

  • 有序存储数据

  • 允许重复数据

  • 可修改

3.13 列表的遍历 — while循环

语法结构

index = 0
while index < len(列表):
    元素 = 列表[index]
    元素的处理
    index += 1
name_list = ["he", "l", "l", "0", "!"]
index = 0
while index < len(name_list):
    element = name_list[index]
    print(f"列表下标为{index}的元素是{element}")
    index += 1

在这里插入图片描述

3.14 列表的遍历 — for循环

语法结构

for 临时变量 in 数据容器:
    临时变量的处理
name_list = ["he", "l", "l", "0", "!"]
index = 0
for element in name_list:
    print(f"列表元素有{element}")

在这里插入图片描述

4.元组及常用操作

  • 查找方法:index

  • 统计方法:count

  • 统计元组元素数量:len

# 查找方法
t1 = ("he", "l", "l", "0", "!")
index = t1.index("0")
print(f"t1元组中的元素o的下标是:{index}")

# 统计方法
t2 = ("he", "l", "l", "l", "o", "!")
num = t2.count("l")
print(f"t2元组中的元素l的数量有:{num}")

# 统计元组元素数量
t3 = ("he", "l", "l", "o", "!")
num = len(t3)
print(f"t3元组的元素的数量有:{num}")

在这里插入图片描述

4.1 总结:
1 index(元素) 查找某个数据对应的下标,不存在就报错
2 count(元素) 统计某个数据在当前元组所出现的次数
3 len(元组) 统计元组内元素的数量
4.2 元组的遍历 — while循环
t1 = ("he", "l", "l", "0", "!")
index = 0
while index < len(t1):
    element = t1[index]
    print(f"元组t1的元素有:{element}")
    index += 1

在这里插入图片描述

4.3 元组的遍历 — for循环
t1 = ("he", "l", "l", "0", "!")
index = 0
for element in t1:
    print(f"元组t1的元素有:{element}")

在这里插入图片描述

4.4 元组的特点
  • 可容纳多个数据

  • 可容纳不同类型的数据

  • 数据有序存储

  • 允许重复数据存在

  • 不可修改

  • 支持for循环

5.字典及常用操作

5.1 定义

作用:可通过Key,取到对应的Value。

语法结构

# 定义字典字面量
{key: value, key: value, .......,key: value}
# 定义字典常量
my_dict = {key: value, key: value, ......, key: value}
# 定义空字典
my_dict = {}
my_dict = dict()
my_dict1 = {"小明": 18, "小红": 19, "小王": 20}
my_dict2 = {}
my_dict3 = dict()
print(f"mydict1字典的内容是{my_dict1},类型是{type(my_dict1)}")
print(f"mydict2字典的内容是{my_dict2},类型是{type(my_dict2)}")
print(f"mydict3字典的内容是{my_dict3},类型是{type(my_dict3)}")

# 重复Key的字典
my_dict4 = {"小明": 18, "小明": 20, "小红": 19}
print(f"重复Key的my_dict4的内容是{my_dict4}")

在这里插入图片描述

5.2 数据的获取

语法结构:字典[Key]

my_dict = {"小明": 18, "小红": 19, "小王": 20}
print(my_dict["小明"]) # 18
print(my_dict["小红"]) # 19
print(my_dict["小王"]) # 20
5.3 嵌套

字典中的Key和Value可以是任意数据类型,Key不可为字典。

score_dict = {"小明": {"语文": 80, "数学": 90, "英语": 81},
             "小红": {"语文": 85, "数学": 88, "英语": 83},
             "小王": {"语文": 87, "数学": 80, "英语": 87}}
print(f"考试信息是:{score_dict}")
Xiaohong_English_score = score_dict["小红"]["英语"]
print(f"小红的英语成绩是{Xiaohong_English_score}")

在这里插入图片描述

5.4 新增元素

语法结构:字典[Key] = Value

student_score = {"小明": 80, "小红": 90, "小王": 88}
student_score["小李"] = 84
print(student_score) # {'小明': 80, '小红': 90, '小王': 88, '小李': 84}
5.5 更新元素

语法结构:字典[Key] = Value

student_score = {"小明": 80, "小红": 90, "小王": 88}
student_score["小明"] = 84
print(student_score) # {'小明': 84, '小红': 90, '小王': 88}
5.6 删除元素

语法结构:字典.pop(Key)

student_score = {"小明": 80, "小红": 90, "小王": 88}
delete_score = student_score.pop("小明")
print(delete_score)  # 80
print(student_score) # {'小红': 90, '小王': 88}
5.7 清空字典

语法结构:字典.clear()

student_score = {"小明": 80, "小红": 90, "小王": 88}
student_score.clear()
print(student_score) # {}
5.8 获取全部的Key

语法结构:字典.Keys()

student_score = {"小明": 80, "小红": 90, "小王": 88}
obtain_value = student_score.keys()
print(obtain_value) # dict_keys(['小明', '小红', '小王'])
5.9 字典的遍历
student_score = {"小明": 80, "小红": 90, "小王": 88}
obtain_value = student_score.keys()
for key in obtain_value:
    print(f"Key:{key}")
    print(f"Value:{student_score[key]}")
# Key:小明
# Value:80
# Key:小红
# Value:90
# Key:小王
# Value:88
5.10 统计字典内的元素数量

语法结构:len(字典)

student_score = {"小明": 80, "小红": 90, "小王": 88}
num = len(student_score )
print(num) # 3
5.11 总结
编号 操作 说明
1 字典[Key] = Value 新增元素
2 字典[Key] = Value 更新元素
3 字典.pop(Key) 删除元素
4 字典.clear() 清空字典
5 字典.Keys() 获取字典内全部的Key
6 len(字典) 统计字典内的元素数量
5.12 特点
  • 可容纳多个数据

  • 可容纳多个不同类型的数据

  • 每份数据是Key与Value值对应

  • 可通过Key去获取Value,Key不可重复

  • 不支持下标索引

  • 可修改

  • 支持for循环

6.公用操作

6.1 合并操作+

适用于字符串,列表,元组

功能:两个对象相加操作,合并两个对象

语法结构:对象+对象

str1 = "hello"
str2 = "python"
print(str1+str2) # hellopython
6.2 *复制

适用于字符串,列表,元组

功能:对象自身按指定次数进行+操作

语法结构:对象*次数

str1 = "hello"
print(str1*3) # hellohellohello
6.3 in 判断元素是否存在

适用于字符串,列表,元组,字典

返回结果是一个bool值

功能:判断指定元素是否存在于对象中

语法结构:字符 in 对象

str1 = "hello"
lo"
print("e" in str1) # True

相关推荐

  1. Python高级数据类型

    2024-03-24 15:04:01       40 阅读
  2. C++核心高级编程

    2024-03-24 15:04:01       22 阅读
  3. [python高级编程]:01-数据结构

    2024-03-24 15:04:01       42 阅读
  4. Python高级编程Python中Excel表格处理数据

    2024-03-24 15:04:01       9 阅读
  5. Python高级编程数据分析与数据可视化

    2024-03-24 15:04:01       12 阅读
  6. Python高级编程

    2024-03-24 15:04:01       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 15:04:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 15:04:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 15:04:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 15:04:01       20 阅读

热门阅读

  1. Uniapp manifest

    2024-03-24 15:04:01       17 阅读
  2. 搜索旋转排序数组

    2024-03-24 15:04:01       23 阅读
  3. 课时73:流程控制_for循环_综合案例

    2024-03-24 15:04:01       17 阅读
  4. 【Linux】调试器-gdb的安装与使用

    2024-03-24 15:04:01       17 阅读
  5. dom元素+CSS实现阶梯动画效果

    2024-03-24 15:04:01       19 阅读
  6. Linux安装iptables 防火墙

    2024-03-24 15:04:01       20 阅读
  7. 前端安全之XSS与CSRF

    2024-03-24 15:04:01       15 阅读
  8. Median of an Array(贪心策略,编程技巧)

    2024-03-24 15:04:01       20 阅读
  9. Mysql

    Mysql

    2024-03-24 15:04:01      16 阅读
  10. arm linux应用程序crash分析一般方法

    2024-03-24 15:04:01       18 阅读
  11. Vue2 CSS小知识点

    2024-03-24 15:04:01       19 阅读
  12. 【力扣】268.丢失的数字

    2024-03-24 15:04:01       19 阅读