Python每日学习-字符串、列表、元组
一、字符串
1.字符串的概念
- 用单引号、双引号、三引号括起来的表示字符串。字符串是不可变对象,不可以修改某个下标的值。
(1)字符串本身有单引号的,外面用双引号。
str1="I'm Lily"
(2)字符串本身有双引号,外面用单引号。
str2='He said:"Hello!"'
(3)字符串中既有单引号,又有双引号,可以用三引号。
str3=''' He said:"I'm Jack" '''
(4)三引号里面可以是跨行的字符串。
(5)三引号既可以是三个单引号,也可以是三个双引号。
str4="""
白日依山尽;
黄河入海流。
欲穷千里目;
更上一层楼。
"""
2.字符串的拼接
(1)字符串之间使用 + 号拼接。
print("my name is:"+"Jack") # 打印:my name is:Jack
(2)str型与int型不可以相加,会报错。
print('1' + 2) # 报错TypeError
3.转义符的作用,取消转义的三种方案
(1)转义符是具有特殊用途的字符。
\' 表示'
\" 表示"
\n 表示换行
\\ 表示\
(2)例如某文件路径为D:\note1.txt,该路径直接使用会报错,因为\n转义了,此时我们需要通过一些方法取消转义,以下有三种方案。
- 方案1:在\n前面加一个n
filepath1='D:\\note1.txt'
- 方案2:字符串的前面加一个r,表示后面的字符串所有的转义符均不生效。
filepath1=r'D:\note1.txt'
- 方案3:表示路径时,可以用 / 代替 \ 。
filepath1='D:/note1.txt'
4.字符串的切片
(1)每个字符可以用正数下标表示也可以用负数下标表示它们在字符串中的位置。下标从左向右数,以0开始,负下标,最后一位是-1,倒数第二位是-2,以此类推。
str1="abcd" # 字符串str1 a字符的正下标是0,负下标是-4.
(2)我们可以截取字符串一部分内容,称之为切片。截取操作符是[]。如果参数有多个,我们中间用:隔开。
(3) [起始下标:终止下标:步长] 包含起始下标,不包含终止下标,步长的缺省值是1,从左向右取值,当步长为-1时,表示从右向左取值,起始下标与终止下标的正负不影响方向,步长的正负影响方向。
str5 = 'Hello world!'
print(str5[:5]) # 不写起始下标,表示从头开始取值
print(str5[-6:]) # 不写终止下标,表示从起始下标开始后面的值全取
print(str5[11:4:-1]) # 步长为负数,从右向左取值
二、列表
1.列表的概念
- 列表可以存放任意类型对象,列表是可变对象。
list1=[] # 创建一个空列表
list2=[1,1.333,'a',[1,2,3]] # 列表可以存放任意类型对象
list2[0]=2 # 列表是可变对象,修改列表中的元素值
2.列表的新增
- 列表的新增方法有:append、insert、extend
list2=[100,200,300,400,500]
# append() 添加元素到列表的末尾
list2.append(600)
# insert() 添加元素到列表的指定位置, insert(下标,值)
list2.insert(1,870)
# extend() 列表的拼接
list2_new = [600,700,800]
list2.extend(list2_new)
3.列表的删除
- 列表的删除方法有:pop、remove、del
# pop() 不指定参数,删除列表的最后一个元素,也可以指定参数,删除某个下标的元素
list2.pop() # 删除列表最后一个元素
list2.pop(0) # 删除下标为0的元素
# remove() 根据值进行删除
list2.remove(100) # 删除值为100的元素,如果有多个100,删除第一个。
# del 根据下标删除,不指定下标,删除整个列表
del list2[0] # 删除第0位元素
del list2 # 删除list2
4.列表的切片
- 列表的切片用法与字符串一致。
5.浅拷贝与深拷贝
- 浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
import copy
list1=[100,200,300,[700,800,900]]
list1_new=list1 #赋值,没有生成新的对象
list1_new=copy.copy(list1) #浅拷贝,生成了新的对象,如果列表中有子列表,子列表仍然是同一个对象
list1_new=copy.deepcopy(list1) #深拷贝,列表和子列表都是新对象
三、元组
1.元组的定义
- 元组与列表类似,不同之处在于元组的元素不能修改
- 元组用()定义,用于存储一串信息,数据之间使用,分隔
- 元组的索引从0开始
例如:tuple1=(“zhangsan”,18,1.75)
注意:元组中只包含一个元素时,需要在元素后面添加逗号,tuple2=(50,)
2.元组常用操作
# 空元组的创建
info=()
# 多种数据类型元组的创建
info1=('123','元组',[1,2,3],{'name':'zhou','age':18})
# 一个元素的元组创建
info2=('hello',)
#删除元组
del info
num=(1,2,3,4,4,3,2,1,1,2,3,4)
# count查找的为某个元素在元组中出现的次数
print(num.count(2))
# index查找的为元组的索引值,第一个参数代表需要查找的元素,第二个参数可以指定从那个索引值开始查找
print(num.index(4))
print(num.index(4,4))
# 通过索引取出索引为3的值
print(num[3])
# 通过切片的方式来获取指定的元素,第一个参数为开始索引,第二个参数为结束索引,第三个参数为步长
print(num[2:8:2])
# 给元组重新赋值
num=(11,22,33,44,55,66,77,88)
print(num)
# 使用元组进行拼接得到新元组
num1=(1,2,3)
num2=(4,5,6)
num1=num1+num2
print(num1)
# 进行元组拆包来分别得到元组的元素
num3=(7,8,9)
# 有几个元素就用几个变量接收
a,b,c=num3
print(a)
print(b)
print(c)