【新人系列】Python 入门(八):数据结构 - 上

✍ 个人博客:https://blog.csdn.net/Newin2020?type=blog

📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html

📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们一起交流~

📚 专栏简介:在这个专栏,我将带着大家从 0 开始入门 Python 的学习。在这个 Python 的新人系列专栏下,将会总结 Python 入门基础的一些知识点,方便大家快速入门学习~

❤️ 如果有收获的话,欢迎点赞 👍 收藏 📁 关注,您的支持就是我创作的最大动力 💪

1. 字符串切片

从本质上讲,字符串是由多个字符构成的,字符之间是有顺序的,这个顺序号称为索引(index)。

  1. 获取单个字符

在方括号 [ ] 中使用索引即可访问对应的字符,具体的语法格式为:

python 复制代码
strname[index]

Python 允许从字符串的两端使用索引:

  • 当以字符串的左端(字符串的开头)为起点时,索引是从 0 开始计数的;字符串的第一个字符的索引为 0,第二个字符的索引为 1,第三个字符串的索引为 2 ...
  • 当以字符串的右端(字符串的末尾)为起点时,索引是从 -1 开始计数的的;字符串的倒数第一个字符的索引为 -1,倒数第二个字符的索引为 -2,倒数第三个字符的索引为 -3 ...
  1. 获取多个字符(字符串截去 / 字符串切片)

使用门除了可以获取单个字符外,还可以指定一个范围来获取多个字符,也就是一个子串或者片段,具体格式为:

python 复制代码
strname[start : end : step]

2. list 列表

2.1 列表定义

从形式上看,列表会将所有元素都放在一对中括号 [ ] 里面,相邻元素之间用逗号 , 分隔,如下所示:

python 复制代码
[element1, element2, element3, ..., elementn]

创建列表

在 Python 中,创建列表的方法可分为两种:

  1. 使用 [ ] 直接创建列表

使用 [ ] 创建列表后,一般使用 = 将它赋值给某个变量,具体格如下:

python 复制代码
listname = [element1, element2, element3 , ... , elementkn]

其中,listname 表示变量名,element1 ~ elementn 表示列表元素。

  1. 使用 list( ) 函数创建列表

除了使用 [ ] 创建列表外,Python 还提供了一个内置的函数 list( ),使用它可以将其它数据类型转换为列表类型。

python 复制代码
# 将字符串转换成列表
username = "helloworld"
list1 = list(username)
print(list1)

# 将元组转换成列表
tuple1 = ('Python', 'Java', 'C++', 'JavaScript')
list2 = list(tuple1)
print(list2)

2.2 增删改查

访问列表元素

列表是 Python 序列的一种,我们可以使用索引(Index)访问列表中的某个元素(得到的是一个元素的值),也可以使用切片访问列表中的一组元素(得到的是一个新的子列表)。

  • 使用索引访问列表元素的格式为:listname[i]

其中,listname 表示列表名字,i 表示素引值。列表的索引可以是正数,也可以是负数。

  • 使用切片访问列表元素的格式为:listname[start🔚step]

其中,listname 表示列表名字,start 表示起始索引,end 表示结束索引,step 表示步长。

Tips:

索引从 0 开始而不是 1 开始,通过将索引指定为 -1,可以得到列表最后一个元素。

python 复制代码
url = [1, 2, 3, 4, 5, 6, 7, 8]
print(url[2])       # 3
print(url[-2])      # 7
print(url[0:3])     # [1, 2, 3]
print(url[0:5:2])   # [1, 3, 5]
print(url[::])      # [1, 2, 3, 4, 5, 6, 7, 8]

添加列表元素

  1. append( ) 方法

append( )方法用于在列表的末尾追加元素,该方法的语法格式如下:

python 复制代码
listname.append(obj)

其中,listname 表示要添加元素的列表;obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。

python 复制代码
list1 = ['Python', 'C++', 'Java']
print(list1)            # ['Python', 'C++', 'Java']
list1.append("PHP")
print(list1)            # ['Python', 'C++', 'Java', 'PHP']
list2 = [1, 2, 3]
list1.append(list2)
print(list1)            # ['Python', 'C++', 'Java', 'PHP', [1, 2, 3]]
  1. extend( ) 方法

extend( ) 方法同样也可以在末尾添加单个元素,但与 append 不同的是,当用 extend( ) 添加诸如列表对象时,不会将其视为一个整体添加进去,而是会将列表对象中的所有元素进行拆分,一个个的添加到新列表的末尾。

python 复制代码
list1 = ['Python', 'C++', 'Java']
print(list1)            # ['Python', 'C++', 'Java']
list1.extend("PHP")
print(list1)            # ['Python', 'C++', 'Java', 'P', 'H', 'P']
list2 = ['C#', 'Go']
list1.extend(list2)
print(list1)            # ['Python', 'C++', 'Java', 'P', 'H', 'P', 'C#', 'Go']
  1. insert( ) 方法

前面两种方法都是添加到列表的末尾,如果想在列表中间插入元素,可以使用 insert 方法。

python 复制代码
list1 = ['Python', 'C++', 'Java']
print(list1)            # ['Python', 'C++', 'Java']
list1.insert(-1, "PHP")
print(list1)            # ['Python', 'C++', 'PHP', 'Java']
list1.insert(1, "Go")
print(list1)            # ['Python', 'Go', 'C++', 'PHP', 'Java']

修改列表元素

python 复制代码
【输入】
motorcycles = ['honda','yamaha','suzuki']
motorcycles[0] = 'ducati'
print(motorcycles)    # ['ducati', 'yamaha', 'suzuki']

删除列表元素

使用 pop( ) 可以弹出一个元素,一旦使用 pop( ) 之后,被弹出的元素就不在列表中了。

方法 remove( ) 只删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环。

2.3 列表常见操作

组织列表

其中 sorted( ) 和 sort( ) 的区别如下:

列表复制

下面两段代码不一样:

  • 代码一是将 my_foods 复制给了 friend_foods 成为两个列表。
  • 代码二则是将 friend_foods 与 my_foods 划等号即实质上两个变量还是用的同一个列表,一方的删减会同步影响到另一方。
python 复制代码
# 代码一
my_foods = ['pizza','falafel','carrot cake']
friend_foods = my_foods[:]

# 代码二
my_foods = ['pizza','falafel','carrot cake']
friend_foods = my_foods

列表的简单计算

列表转换成字符串

如果我们想将列表中的字符拼接成一个字符串,则可以使用 join 函数,还可以指定拼接时的连接符。

python 复制代码
list1 = ["h", "e", "l", "l", "o"]
print("".join(list1))       # hello
print("+".join(list1))      # h+e+l+l+o

Tips:

不光是列表可以使用 join 函数,下面的元组、字典和集合都可以使用 join 函数,其中字典是会拼接字典中的 key 值。

python 复制代码
list1 = ("1", "2")
print("+".join(list1))      # 1+2

list2 = {"1":"go", "2":"lang"}
print("+".join(list2))       # 1+2

list3 = {"1", "2"}
print("+".join(list3))       # 2+1(因为集合是无序的)

3. tuple 元组

元组(tuple)是 Python 中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。

元组和列表(list)的不同之处在于:

  • 列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列。
  • 而元组一旦被创建,它的元素就不可更改了,所以元组是不可变序列。

元组也可以看做是不可变的列表,通常情况下,元组用于保存无需修改的内容。

创建元组

Python 提供了两种创建元组的方法:

  1. 使用 ( ) 直接创建

通过 ( ) 创建元组后,一般使用 = 将它赋值给某个变量,具体格式为:

python 复制代码
tuplename = (element1, element2, ..., elementn)

如果创建的元组只包含一个元素,则需要在后面加上逗号。

python 复制代码
my_t = (3,)
  1. 使用 tuple( ) 函数创建元组

除了使用 ( ) 创建元组外,Python 还提供了一个内置的函数 tuple( ),用来将其它数据类型转换为元组类型。

Tips:加粗样式

元组的访问时的语法与列表相同。

修改元组变量

修改变量不能通过修改列表元素那样去修改,需要重新定义。

python 复制代码
dimensions = (200,50)    # (200,50)
print(dimensions)
dimensions = (400,100)
print(dimensions)        # (400,100)
相关推荐
yangpipi-2 分钟前
数据结构(C语言版)-2.栈和队列
c语言·开发语言·数据结构
bcbobo21cn4 分钟前
C语言不创建中间变量交换2个数
数据结构·异或·交换2数
还在学习进步4 分钟前
C语言第九周课——经典算法
c语言·开发语言·算法
阿七想学习7 分钟前
数据结构《链表》
java·开发语言·数据结构·学习·链表
极客代码9 分钟前
【Python TensorFlow】进阶指南(续篇二)
开发语言·人工智能·python·深度学习·tensorflow
计算机学姐22 分钟前
基于Python的高校成绩分析管理系统
开发语言·vue.js·后端·python·mysql·pycharm·django
VertexGeek24 分钟前
Rust学习(三):rust基础Ⅱ
开发语言·学习·rust
北京_宏哥26 分钟前
《最新出炉》系列入门篇-Python+Playwright自动化测试-50-滚动条操作
python·前端框架·测试
九年义务漏网鲨鱼29 分钟前
【人脸伪造检测后门攻击】 Exploring Frequency Adversarial Attacks for Face Forgery Detection
论文阅读·python·算法·aigc
一个数据小开发30 分钟前
业务开发问题之ConcurrentHashMap
java·开发语言·高并发·map