Python基础--python数据结构(字符串、列表和元组)
前言
!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022 Python的web开发(完整版) 入门全套教程,零基础入门到项目实战
数据结构
1. 字符串类型 str
1.1 定义
上个文件找
1.2 独有功能
大写 upper
小写 lower
是否是数字 isdecimal
替换 replace
去空白 strip
切割 split 切割后得到的是一个列表
file_name = "hello.py" # 如何获得扩展名
data_list = file_name.split(".") # 根据传进去的参数分割
print(data_list[-1])
text = "计算机, root, 18, 123@qq.com"
data_list = text.strip().split(",")

字符串拼接
- +运算符
- 字符串格式化
- 列表里面有很多字符串,想让他们按照某个连接符拼接起来
data_list = ["计算机", "科学", "与", "技术"]
new_data = " ".join(data_list)
print(new_data)
# 计算机 科学 与 技术
字符串转换成字节类型 encode()
字符串 Unicode
字节 utf-8
data = "computer"
v1 = data.encode("utf-8")
print(v1)
# b'computer'
data = "哈哈"
v1 = data.encode("utf-8")
print(v1)
# b'\xe5\x93\x88\xe5\x93\x88'
data = "哈哈"
v1 = data.encode("utf-8")
v2 = v1.decode("utf-8")
print(v1, v2) # b'\xe5\x93\x88\xe5\x93\x88' 哈哈
长度补足 center ljust rjust 让内容放中间/左边/右边 自己想补啥就补啥
name = "computer"
text = name.center(13, "*")
print(text)

name = "computer"
text = name.rjust(13, "#")
print(text)
# computer#####
name = "computer"
text = name.rjust(13, "#")
print(text)
# #####computer
长度的补足 只能在左边补0 zfill() 二进制补0用的比较多
name = "computer"
v1 = name.zfill(10)
print(v1)
# 00computer
1.3 公共功能
长度 len
name = "cs"
print(len(name))
# 2
索引 []
text = "computer"
print(text[1]) # o
print(text[-2]) # e
切片 [::] 字符串是不可变的! 记住喔
text = "computer"
text[0:2] # 前闭后开 co
text[2:5] # 前闭后开 mpu
text[2:-1] # 前闭后开 mpute
text[2:] # 前闭后开 mputer
text[:-1] # 前闭后开 compute
text[:] # 全部 computer
循环 for/while循环
name = "computer science" for item in name:
print(item) count = 0
while count < len(name):
print(name[count])
count += 1# range 函数: 生成一个数字列表 左闭右开 一般和for循环结合使用
v1 = range(5) # v1 = [0, 1, 2, 3, 4]
v1 = range(5, 10) # v1 = [5, 6, 7, 8, 9]
v2 = range(5, 10, 2) # [5, 7, 9]
v2 = range(10, 0, -1) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
for i in range(1, 100):
print(i, end=" ")
练习题 略
2. 列表
有序且可变的容器,元素可以使多个不同的数据类型。
2.1 定义
data_list = [1, 2, "计算机", 2.5]
data_list = []
data_list.append(1)
注意:列表是可变类型,绝大部分功能是对原列表进行操作
2.2 独有功能
追加 append
data_list = []
data_list.append(11)
data_list.append('计算机')
插入 insert 插入到具体的位置
user_list = ["计算机", "电脑", "计算器"]
user_list.insert(1, "超级计算机")
print(user_list) # ['计算机', '超级计算机', '电脑', '计算器']
按值删除 remove 如果有重复的值 只会删除从左到右第一个匹配的值 如果没有找到值,则会报错 —— 可以利用in关键字判断是否存在值。
data_list = ['计算机', '超级计算机', '电脑', '计算器']
data_list.remove('计算机')
print(data_list) # ['超级计算机', '电脑', '计算器']
import random
random.choice(data_list) # 去列表里面随机抽取一个值 不会改变列表的值
按索引删除 pop 如果pop里面不传参数,那么删除最后一个元素。返回删除的元素值
data_list = ['计算机', '超级计算机', '电脑', '计算器', 'computer', 'science']
delete_data = data_list.pop(2)
print(data_list)
print(delete_data)
'''
['计算机', '超级计算机', '计算器', 'computer', 'science']
电脑
'''
清空列表 clear
data_list = ['计算机', '超级计算机', '电脑', '计算器', 'computer', 'science']
print(data_list.clear())
列表元素排序 sort
data_list = [10, 2, -1, 92, 10, 25, 65]
data_list.sort() # 从小到大排序
print(data_list)
data_list.sort(reverse=True) # 从小到大排序
print(data_list) """
[-1, 2, 10, 10, 25, 65, 92]
[92, 65, 25, 10, 10, 2, -1]
"""
data_list = ['计算机', '科学', '技术']
data_list.sort()
print(data_list)
# ['技术', '科学', '计算机'] —— 基于unicode排序
2.3 公共功能
长度 len(list_name)
索引 从0开始 获取值 列表是可变类型
删除 del user_list[2]
切片
data_list = []
data_list[0:4]
data_list[0:-1]
data_list[2:]
data_list[:] # 下面这样也是可以的
data_list = list()
print(data_list) # []
修改
user_list = [11, 22, 33, 44]
user_list[0:2] = [100, 200, 300, 400]
user_list # [100, 200, 300, 400, 33, 44]
删除
del user_list[0:2]
for循环
user_list = [11, 22, 33, 44]
for item in user_list:
对item做操作 for i in range(0, len(user_list)):
对user_list[i]操作
2.4 嵌套
data_list = [
"computer",
"science",
125,
259,
[11, 22, 33, [10, 20, 30]],
[["good", "job", "friends"], 44, 55, 66],
[77, 88, 99]]
print(data_list)
# ['computer', 'science', 125, 259, [11, 22, 33, [10, 20, 30]], [['good', 'job', 'friends'], 44, 55, 66], [77, 88, 99]]
# 取值
data_list[0]
data_list[0][-1]
data_list[1]
data_list[0][2]
data_list[1][2]
data_list[-2][2[-2]]
# computer
# r
# science
# m
# i
# job
练习题
用户注册,提示用户输入用户名和密码如果输入了Q/q终止。
使用list数据结构
3 元组
有序且不可变的容器
data = (11, 22, 33)
print(data)
3.1 定义
元组元素不允许被替换 长度也不允许被修改 但是元组里面如果有可变元素,那这些可变元素是可以改变的。
3.2易错点
v1 = (11, 22) # 正确 元组
v2 = (33, 44,) # 正确 元组
v3 = (666) # v3 = 666 是个值 不是元组
v4 = (666,) # 是个元组


v1 = ( (1), (2), (3) )
v2 = (1, 2, 3)
v3 = ( (1,), (2,), (3,) )
print(v1)
print(v2)
print(v3)
# (1, 2, 3)
# (1, 2, 3)
# ((1,), (2,), (3,))
3.3 独有功能
无
3.4 公共功能
- 长度 len
- 索引
- 切片 注意元组不可变
- for循环 和列表list一样
3.5 嵌套
...
写在最后
由于这些笔记都是从typora里面粘贴过来的,导致图片会加载失败,如果想要带图片的笔记的话,我已经上传至github,网址(https://github.com/wephiles/python-foundation-note)如果github上不去的话也可以去我的gitee下载,网址(https://gitee.com/wephiles/python-django-notes)。欢迎大家来下载白嫖哦,最后,如果可爱又善良的你能够给我github点个star,那你将会是这个世界上运气最好的人喔。
Python基础--python数据结构(字符串、列表和元组)的更多相关文章
- python学习4—数据结构之列表、元组与字典
python学习4—数据结构之列表.元组与字典 列表(list)深灰魔法 1. 连续索引 li = [1,1,[1,["asdsa",4]]] li[2][1][1][0] 2. ...
- Python基础系列----序列(列表、元组、字符串)
1.定义 1 ...
- Python基础(4)列表、元组、字符串、字典、集合、文件操作
列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 详见:http://www.cnblogs.com/alex3714/articles/5717620.html 1.列表和元 ...
- Python基础:序列(列表、元组)
一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...
- python基础教程-第二章-列表和元组
本章将引入一个新的概念,:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在 一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构 ...
- Python基础(3)--列表和元组
Python包含6种内建序列:列表.元组.字符串.Unicode字符串.buffer对象.xrange对象 本篇主要讨论最常用的两种类型:列表.元组 本文地址:http://www.cnblogs.c ...
- python基础教程总结1——列表和元组
1.序列 python含有6种内建序列——列表,元组,字符串,Unicode字符串,buffer对象,xrange对象 2.通用序列操作 2.1 索引 注: input()根据用户输入变换相应的类 ...
- python基础_字典_列表_元组考试_day4
1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...
- python基础(三)--列表、元组、字典
一.列表: 有序序列,支持索引.切片.循环(for,while) 元素可以被修改: 元素可以是任何数据类型(数字,字符串,列表,布尔值...),可以嵌套: ##增 1.append(object) ...
- python基础知识-集合,列表,元组间的相互装换
在python中列表,元祖,集合间可以进行相互转化, def main(): set1={'hello','good','banana','zoo','Python','hello'} print(l ...
随机推荐
- .NET 9 New features-AOT相关的改进
上一篇文章给大家介绍了 .NET 9 New features-JSON序列化 本篇文章,研究分享一下关于AOT方面的改进 1. 什么是AOT AOT(Ahead-of-Time)编译是一种在应用程序 ...
- Getting Started with JavaFX
https://openjfx.io/openjfx-docs/#maven Run HelloWorld using Maven If you want to develop JavaFX appl ...
- Qt数据库应用21-数据分组导出
一.前言 数据分组导出和打印这个需求并不是近期的需求,而是之前做温湿度监控系统的时候提的需求,当然也有几个系统用到了,比如啤酒保鲜监控系统.这个需求的应用场景是,有很多个设备,每个设备都产生了很多的运 ...
- 阿里技术分享:闲鱼IM基于Flutter的移动端跨端改造实践
本文由阿里闲鱼技术团队祈晴分享,本次有修订和改动,感谢作者的技术分享. 1.内容概述 本文总结了阿里闲鱼技术团队使用Flutter在对闲鱼IM进行移动端跨端改造过程中的技术实践等,文中对比了传统Nat ...
- 【狂神说Java】Java零基础学习笔记-预科
[狂神说Java]Java零基础学习笔记-预科 预科01:学习准备:博客 博客,英文名为Blog,它的正式名称为网络日记 为什么要写博客? 需要总结和思考.有时候我们一直在赶路,却忘了放慢脚步 提升文 ...
- 分析基于ASP.NET Core Kernel的gRPC服务在不同.NET版本的不同部署方式的不同线程池下的性能表现
分析基于ASP.NET Core Kernel的gRPC服务在不同.NET版本的不同部署方式的不同线程池下的性能表现 使用默认的 gRPC 项目模板创建,垃圾回收器类型为 ServerGC(Serve ...
- CDS标准视图:日期迁移视图 I_ShiftedCalendarDate
视图名称:I_ShiftedCalendarDate 视图类型:带参数的视图 时间期间偏移量单位(P_TimePeriodOffsetUnit): D代表天 W代表周 M代表月 Q代表季 Y代表年 期 ...
- 阿里云-数据库-ClickHouse
https://help.aliyun.com/product/144466.html 云数据库ClickHouse是开源列式数据库管理系统ClickHouse在阿里云上的托管服务,用户可以在阿里云上 ...
- Storm基本概念
storm简介 场景 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同时对于信息的时效性要求也越来越高.举个搜索场景中的例子,当一个卖家发布了一条宝 ...
- Mac安装brew的四种方法(指定能行)
一,执行brew官网命令安装brew https://brew.sh/ 官网中复制下图中命令,在terminal中输入该命令,即: /bin/bash -c "$(curl -fsSL ht ...