首页 > 其他分享 >02-数据序列

02-数据序列

时间:2024-07-14 16:41:09浏览次数:8  
标签:02 my list 列表 print 字符串 序列 数据 字典

DAY-03课堂笔记


容器:字符串str,列表list,元组tuple,字典dict
了解 集合set

字符串str


定义

使用引号(单引号,双引号,三引号)引起来的内容
  • 代码实现

    #1.使用单引号
    str1='hello'
    #2.使用双引号
    str2="hello"
    #3.使用三引号
    str3='''hello'''
    str4="""hello"""
    print(type(str1),type(str2),type(str3),type(str4))
    

    定义字符串 I'm 小明, 字符串本身包含引号

    如果字符串本身包含单引号,定义的时候不能使用 单引号,

    如果字符串本身包含双引号,定义的时候不能使用 双引号,

  • 代码

    str5 = "I'm 小明"
    print(str5)     # I'm 小明
    # 5. 转义字符 \n \t \' \"
    str6 = 'I\'m 小明'
    print(str6)     # I'm 小明
    # 6. I\'m 小明 \\ --> \
    str7 = 'I\\\'m 小明'
    print(str7)     # I\'m 小明
    
  • 原生字符串

    在字符串的前边 加上 r"", 字符串中的 \ 就不会进行转义
    
    str8 = r'I\'m 小明'
    print(str8)              # I\'m 小明
    str7 = r'I\\\'m 小明'
    print(str7)              # I\\\'m 小明
    

下标(索引)

1, 下标(索引), 是数据在容器(字符串, 列表, 元组)中的位置, 编号
2, 一般来说,使用的是正数下标, 从 0 开始
3, 作用: 可以通过下标来获取具体位置的数据. 使用的语法为
容器[下标]
4, Python 中是支持负数下标, -1 表示最后一个位置的数据

切片

1, 使用切片操作, 可以一次性获取容器中的多个数据(多个数据之间存在一定的规律,数据的下标是 等差数列(相邻的两个数字之间的差值是一样的))
2, 语法 容器[start:end:step]
   2.1 start 表示开始位置的下标
   2.2 end 表示结束位置的下标,但是 end 所对应的下标位置的数据是不能取到的
   2.3 step 步长,表示的意思就是相邻两个坐标的差值
start, start+step, start+step*2, ...,end(取不到)
# 需求1 : 打印字符串中 abc 字符
my_str = 'abcdefg'  
print(my_str[0:3:1]) # abc
#end取不到,所以一般end+1

# 1.1 如果步长是 1, 可以省略不写
print(my_str[0:3]) # abc
# 1.2 如果 start 开始位置的下标为 0, 可以不写,但是冒号不能少
print(my_str[:3]) # abc

print(my_str[-3:-1:]) #ef
# 特殊情况, 步长为 -1, 反转(逆序) 字符串
print(my_str[::-1]) # gfedcba

len()

num = len(数据)
适用类型: 字符串、列表、元组、字典
str_data = "hello python"
print(len(str_data)) # 12: 字符中字符个数(包含空格)

list_data = ["python", "java"]
print(len(list_data)) # 2: 列表中元素个数

tuple_data = ("admin", 123456, 8888)
print(len(tuple_data)) # 3: 元组中元素个数

dict_data = {"name": "tom", "age": 18, "gender": "男"}
print(len(dict_data)) # 3: 字典中键值对的个数

字符串查找方法 find()

字符串.find(sub_str) # 在字符串中 查找是否存在 sub_str 这样的字符串
返回值(这行代码执行的结果):
1, 如果存在sub_str, 返回 第一次出现 sub_str 位置的下标
2, 如果不存在sub_str, 返回 -1
data = "黑马程序员"
index = data.find("黑马")
print(f"index={index}")      #index=0
index1 = data.find("程序员")
print(f"index={index1}")     #index=2
index2 = data.find("白马")
print(f"index2={index2}")    #index=-1

字符串的替换 replace()

新字符串=字符串.replace(old, new, count) # 将字符串中的 old 字符串 替换为 new 字符串 然后赋值到 新字符串
- old 原字符串,被替换的字符串
- new 新字符串,要替换为的字符串
- count 一般不写,表示全部替换, 可以指定替换的次数
- 返回: 会返回一个替换后的完整的字符串
- 注意: 原字符串不会改变的
my_str = 'good good study'
# 需求, 将 good 变为 GOOD
my_str1 = my_str.replace('good', 'GOOD')
print('my_str :', my_str)                # my_str : good good study
print('my_str1:', my_str1)               # my_str1: GOOD GOOD study
# 将第一个 good 替换为 Good
my_str2 = my_str.replace('good', 'Good', 1) 
print('my_str2:', my_str2)               # my_str2: Good good study
# 将第二个 good 替换为 Good
# 先整体替换为 Good, 再将替换后的 第一个Good 替换为 good
my_str3 = my_str.replace('good', 'Good').replace('Good', 'good', 1)
print('my_str3:', my_str3)               # my_str2: Good good study

字符串拆分 split()

字符串.split(分割符)     按照指定字符来分割字符串
注意:
1. 方法执行完成后返回的数据类型为列表(list)
2. 不传入分割符时,默认以空格(空白字符\t,\n)进行拆分
data = "hello Python and\titcast and itheima"
print(data.split("and"))      # ['hello Python ', ' itcast ', ' itheima']--->按字符
print(data.split())           # ['hello', 'Python', 'and', 'itcast', 'and', 'itheima']--->按空白字符
print(data.split(" "))        # ['hello', 'Python', 'and\titcast', 'and', 'itheima']-->空格拆分,\t就不拆了

字符串的连接 join

字符串.join(容器)    # 容器一般是列表 (可以是字符串,元组), 将字符串插入到列表相邻的两个数据之间,组成新的字符串
注意点: 列表中的数据 必须都是字符串才可以
list1 = ['hello', 'Python', 'and', 'itcast', 'and', 'itheima']
str1 = ' '.join(list1)
print(str1)             # hello Python and itcast and itheima
str2 = ','.join(list1)
print(str2)             # hello,Python,and,itcast,and,itheima
str3 = '_*_'.join(list1)
print(str3)             # hello_*_Python_*_and_*_itcast_*_and_*_itheima

列表list


定义

1, 列表,list, 使用 []
2, 列表可以存放任意多个数据
3, 列表中可以存放任意类型的数据
4, 列表中数据之间 使用 逗号隔开
# 方式1, 使用类实例化的方式
# 1.1 定义空列表 变量 = list()
list1 = list()
print(type(list1), list1) # <class 'list'> []
# 1.2 定义非空列表 , 也称为 类型转换 list(可迭代类型) 可迭代类型,能够使用 for 循环 就是 可迭代类型(比
如 容器)
# 将容器中的 每个数据 都作为列表中一个数据进行保存
list2 = list('abcd')
print(list2) # ['a', 'b', 'c', 'd']

# 方式2, 直接使用 [] 进行定义(使用较多)
# 2.1 定义空列表
list3 = []
print(list3)
# 2.2 定义非空列表
list4 = [1, 3.14, 'hello', False]
print(list4)

列表 支持下标 和 切片

列表查询方法:

index() --(索引)方法

index() 这个方法的作用和 字符串中的 find() 的作用是一样
列表中是没有 find() 方法的, 只有 index() 方法
字符串中 同时存在 find() 和 index() 方法

两者区别:
1, 找到 返回下标
2, 没有找到, 直接报错

count()方法

列表.count(数据) # 统计 指定数据在列表中出现的次数   返回值int类型
list1 = ['hello', 2, 3, 2, 3, 4]
# 查找 2 出现的下标
num = list1.index(2)
print(num)
# 统计数据 2 出现的次数
num1 = list1.count(2)
print(num1)
# 统计数据 20 出现的次数
num2 = list1.count(20)
print(num2) # 0

列表增加方法:append()【重点】

列表.append(数据) # 向列表的尾部添加数据
# 返回: None, 所以不用使用 变量 = 列表.append()
直接在原列表中添加数据, 不会生成新的列表,如果想要查看添加后的数据, 直接 print() 打印原列表
list1 = ['hello', 2, 3, 2, 3, 4]
print(list1.count(2))
list1.append(2)        # 2
print(list1.count(2))  # 3
print(list1)           # ['hello', 2, 3, 2, 3, 4, 2]

列表删除方法:pop()

列表.pop(index) # 根据下标删除列表中的数据
- index 下标可以不写, 默认删除在最后一个
- 返回, 删除的数据
list1 = ['hello', 2, 3, 2, 3, 4]
print(f"被删除的数据:{list1.pop()}")      # 4
print(list1)                            # ['hello', 2, 3, 2, 3]
print(f"被删除的数据:{list1.pop(0)}")    # hello
print(list1)                           # [2, 3, 2, 3]

列表修改方法:下标/索引

想要修改列表中的数据, 直接是所有下标即可

列表[下标] = 新数据  #指定的下标不存在,报错(下标越界)
my_list = [1, 2]
my_list[0] = 10
print(my_list)        # [10, 2]
my_list[-1] = 200
print(my_list)        # [10, 200]

列表的反转--reverse()方法

字符串 反转 字符串[::-1]
列表 反转
1. 列表[::-1]   得到一个新的列表, 原列表不会改动
2. 列表.reverse()  直接修改原列表的数据
my_list = ['a', 'b', 'c', 'd', 'e']
# 1. 切片   原列表不变,输出新列表
my_list1 = my_list[::-1]
print('my_list :', my_list)
print('my_list1:', my_list1)  # my_list1: ['e', 'd', 'c', 'b', 'a']
# 2. reverse   直接修改原列表的数据
my_list.reverse()
print('my_list :', my_list)   # my_list : ['e', 'd', 'c', 'b', 'a']

列表的排序

# 前提: 列表中的数据要一样
列表.sort()             # 升序, 从小到大, 直接在原列表中进行排序
列表.sort(reverse=True) # 降序, 从大到下, 直接在原列表中进行排序
my_list = [1, 4, 7, 2, 5, 8, 3, 6, 9]
# 排序 升序------原列表中进行排序
my_list.sort()
print(my_list)
# 降序
my_list.sort(reverse=True)
print(my_list)

列表其他方法:嵌套

列表的嵌套 就是指 列表中的数据还是列表
student_list = [["张三", "18", "功能测试"], ["李四", "20", "自动化测试"], ["王五", "21", "自动化测试"]]
# 张三
print(student_list[0][0])
# 李四
print(student_list[1][0])
# 张三 的信息添加一个 性别 男 ---> 向张三所在的列表 添加数据
student_list[0].append('男')
print(student_list)
# 删除 性别
student_list[0].pop()
print(student_list)
# 打印 所有人员的年龄
for info in student_list:
    print(info[1])

元组tuple


1, 元组 tuple, 使用的 ()
2, 元组和列表非常相似, 都可以存储多个数据, 都可以存储任意类型的数据
3, 区别就是 元组中的数据不能修改,列表中可以修改
4, 因为元组中的数据不能修改,所以只能 查询方法, 如 index, count ,支持下标和切片
5, 元组, 主要用于传参和返回值
# 1. 类实例化方式
# 1.1 定义空元组(不用)--->不能修改,增加:没有意义
tuple1 = tuple()
print(type(tuple1), tuple1)    # <class 'tuple'> ()

# 1.2 -类型转换-, 将列表(其他可迭代类型)转换为元组
tuple2 = tuple([1, 2, 3])
print(tuple2)

# 2. 直接使用 () 定义
# 2.1 定义空元组
tuple3 = ()

# 2.2 非空元组
tuple4 = (1, 2, 'hello', 3.14, True)
print(tuple4)
print(tuple4[2]) # hello

# 2.3 定义只有一个数据的元组, 数据后必须有一个逗号
tuple5 = (10,)
print(tuple5)

元组的特殊用法:

交换两个变量的值【面试题】

a = 10
b = 20
c = b, a # 组包
print(c) # (20, 10)   -->tuple
a, b = c # 拆包 a=20  b=10 --> int
print(a, b)

#结论

标签:02,my,list,列表,print,字符串,序列,数据,字典
From: https://www.cnblogs.com/xcq-bj/p/18301700

相关文章

  • 深入解析淘客返利系统中的分布式数据库选型与优化
    深入解析淘客返利系统中的分布式数据库选型与优化大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!1.介绍分布式系统的核心挑战之一是数据存储与管理。在淘客返利系统中,高效的分布式数据库选型及优化是确保系统稳定性和性能的重要因素。本文将深入......
  • 【2024_CUMCM】中心对数变换(CLR)[附代码]
    介绍中心对数变换(CLR)是一种针对成分数据的重要转换方法,它通过将成分数据转换为对数比值,有助于在统计分析中更有效地处理这类数据的特性。成分数据在数据分析和统计建模中,成分数据是一种特殊类型的数据,其特点是各组成部分之和为一个常数(通常为1或100%)。这种数据在地质学、化......
  • html+css+js带数据储存功能的在线多人积分系统
    积分数据储存功能是通过cookies实现的,所以如果不把该网页部署在web服务器上再去访问保存积分数据后读取积分时会提示没有积分数据。如果不想使用积分数据保存功能,那直接放到一个HTML文件中打开运行即可  源码在后面  保存积分数据后,刷新页面或重新打开,只要点击读取按钮就......
  • Spark _Exam_ 20240711
    SparkExam20240711Conclusion比较可惜,做前面AB的时候状态不错,但是后面就不行了,C题直接想错了一个点,然后又没有继续想,D题确实不知道一些技巧,但是其实已经凑齐了正解的全部拼图,可以拿到60-70pts.score240|rnk3|est260|ideal360|idealrnk2A.flandreStatement定义一个序列......
  • 大数据信用报告中有高风险多久能清除?
    很多人可能会听说过大数据信用,因为现在大数据信用已经是很多放贷机构进行风控审核的重要依据,那大数据信用报告中有高风险多久能清除呢?本文就详细为你介绍一下,希望对你了解大数据信用高风险有帮助。大数据信用为什么会有高风险大数据信用中的风险检测要点主要......
  • 【2024】springboot“一分钟”寝室小卖部系统
     #系统介绍本文首先实现了“一分钟”寝室小卖部系统设计与实现管理技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框......
  • 使用Spring Data JPA进行数据库操作
    使用SpringDataJPA进行数据库操作大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!1.简介SpringDataJPA是Spring框架提供的一种用于简化数据库操作的技术,基于JPA(JavaPersistenceAPI)规范,通过简单的接口和方法,可以轻松地实现对数据库的增删改查操作......
  • Java中的序列化与反序列化
    Java中的序列化与反序列化大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!序列化与反序列化概述在Java中,序列化是将对象转换为字节流的过程,可以将对象持久化保存到文件、数据库或网络传输中。反序列化则是将字节流恢复为对象的过程。Java中的序列化与反......
  • HarmonyOS NEXT 学习笔记3--登录页面(数据绑定)
    1.代码:import{promptAction}from'@kit.ArkUI'@Entry@ComponentstructPage_textInput_onchange{//@StateUI刷新测试[注意:不是双向绑定]username:string=''password:string=''build(){Column({space:20}){......
  • 使用Spring Boot实现数据脱敏
    使用SpringBoot实现数据脱敏大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代信息系统中,数据安全和隐私保护变得越来越重要。数据脱敏是一种有效保护敏感信息的技术,通过对数据进行遮掩或变形,使其在不影响使用的前提下失去敏感性。本文将介绍如何在S......