python序列—列表,元组,字符串

目录

一、  1.列表语法

         2.列表切片

         3.列表的使用——增/删/改

1.增 2.删 3.改

4.列表的运算

5.列表的嵌套

 访问

6.列表的拷贝

浅拷贝

深拷贝

7.列表推导式

基本语法

获取元素

创建\修改嵌套列表

 添加用于筛选的if分句

嵌套的列表表达式

 二、元组

打包和解包

 三、字符串

                  大小写字母转换

左中右对齐

查找

替换

判断​​​​​​​

 四、 序列

del语句

相关函数


列表语法

数字和字符串可以同时存在同一列表中

[1,2,3,4,"python"]

给列表命名以至于可以再次访问

list = [1,2,3,4,"python"]
print(list) 
#[1,2,3,4,'python']

单独访问列表中的某个元素用下标索引

list = [1,2,3,4,"python"]
list[1] #访问第一个元素
#1
list[5]
#'python'

如果列表很长

可以

list = [1,2,3,4,"python"]
length = len(list)  #len()函数用于计算长度
list[lenth - 1]
#'python'

或直接

list[-1]
#'python'

列表切片

从0开始索引

list = [1,2,3,4,"python"]
list[0:3]
#[1,2,3]
#可简化为
list[:3]
#[1,2,3]

list[3:5]
#[4,'python']
#可简化为
list[3:]
#[4,'python']

list[:]
#[1,2,3,4,'python']

还可以放三个参数,list[start,stop,step],有点类似于range函数

list = [1,2,3,4,5,"python"]
list[0:5:2]
#[1,3,5]
#可简化为
list[::2]
#[1,3,5]
#倒过来
list[::-2]
#['python',4,2]

列表倒叙输出

list = [1,2,3,4,5,"python"]
list[::-1]
#['python',5,4,3,2,1]

列表的使用——增/删/改

1.增

1.append与extend

members = ["JEONGHAN","Joshua"]
members.append("S.COUPS")
members
#['JEONGHAN','Joshua','S.COUPS']
members.extend(["Woozi","JUN","Hoshi","WONWOO"])
members
#['JEONGHAN','Joshua','S.COUPS','Woozi','JUN','Hoshi','WONWOO']

2.切片

s = [1,2,3,4,5]
s[len(s):] = [6]
s
#[1,2,3,4,5,6]
s[len(s):] = [7,8,9]
s
#[1,2,3,4,5,6,7,8,9]

3.insert()

s = [1,3,4,5]
s.insert(1,2) #1是插入位置,2是插入值
s
#[1,2,3,4,5]
s.insert(0,0)
s
#[0,1,2,3,4,5]
s.insert(len(s),6) #插入在末尾
s
#[1,2,3,4,5,6]

2.删

remove() 内接元素

list = [1,2,3]
list.remove(1)
list
#[2,3]

pop() 内接元素的下标索引值

list = [1,2,3]
list.pop(1)
#2
list
#[1,3]

clear()清空列表

3.改

列表可改,字符串不能改

list = [1,2,3,4]
list[1] = "python"
list
#[1,'python',3,4]

补充:

相同的列表用不同变量表示时,不等价

x = "python"
y = "python"
x is y
#True

x = [1,2,3]
y = [1,2,3]
x is y
#False

列表的运算

加法

s = [1,2]
t = [3,4]
s = t
#[1,2,3,4]

乘法

s = [1,2]
s * 3
#[1,2,1,2,1,2]

列表的嵌套

二维列表

matrix = [[1,2,3],[4,5,6],[7,8,9]]

 访问

直接访问1

matrix = [[1,2,3],
          [4,5,6],
          [7,8,9]]
for i in matrix:
     for each in i:
         print(each)

直接访问2

matrix = [[1,2,3],
          [4,5,6],
          [7,8,9]]
for i in matrix:
     for each in i:
         print(each,end=' ')
    print()

 

 下标索引

matrix = [[1,2,3],
          [4,5,6],
          [7,8,9]]
matrix[0]
#[1,2,3]
matrix[0][0]
#1

列表的拷贝

拷贝与引用不同

引用:修改x也会修改y

x = [1,2,3]
y = x
x[1] = 1
x
#[1,1,3]
y
#[1,1,3]

拷贝:修改x不会修改y

x = [1,2,3]
y = x.copy()
x[1] = 1
x
#[1,1,3]
y
#[1,2,3]

浅拷贝

1.如上所示,copy()函数的用法

2.切片

x = [1,2,3]
y = x[:]
x[1] = 1
x
#[1,1,3]
y
#[1,2,3]

但是拷贝的“不修改”,只适用于简单列表。当涉及到列表嵌套时,浅拷贝只能拷贝其外层列表。

如下

x = [[1,2,3],[4,5,6],[7,8,9]]
y = x.copy()
x[1][1] = 0
x
#[[1,2,3],[4,0,6],[7,8,9]]
y
#[[1,2,3],[4,0,6],[7,8,9]]

此时,y也被改变了,因此需要深拷贝

深拷贝

deepcopy()函数

x = [[1,2,3],[4,5,6],[7,8,9]]
y = copy.deepcopy(x)
x[1][1] = 0
x
#[[1,2,3],[4,0,6],[7,8,9]]
y
#[[1,2,3],[4,5,6],[7,8,9]]

此时,y没有改变

列表推导式

如果我们想改变列表中的元素,可以这样实现

x = [1,2,3,4,5]
for i in range(len(x)):
  x[i] = x[i]*2
x
#{2,4,6,8,10]

也可以用列表推导式,更简洁且效率更高

x = [1,2,3,4,5]
x = [i*2 for i in x]
x
#{2,4,6,8,10]

基本语法

[ expression for target in iterable]

x = [i for i in range(5)]
x
#[0,1,2,3,4]
x = [i + 1 for i in range(5)]
x
#[1,2,3,4,5]

获取元素

matrix = [[1,2,3],
          [4,5,6],
          [7,8,9]]
#获取第二列元素
col2 = [row[1] for row in matrix]
col2
#[2,5,8]
#获取组对角线上元素
diag = [matrix[i][i] for i in range(len(matrix))]
diag
[1,5,9]

创建\修改嵌套列表

s = [[0]*3 for i in range(3)]
s
#[[0,0,0],[0,0,0],[0,0,0]]

 添加用于筛选的if分句

even = [i +1 for i in range(10) if i % 2 == 0]
even
#[1,3,5,7,9]

执行顺序是:1.先执行for-in语句,2.再执行if语句,3.最后执行i+1的表达式

嵌套的列表表达式

语法结构:

[expression for target1 in iterable1

                   for target2 in iterable2

                     .........

                 for targetN in iterableN]

x = [[1,2,3],[4,5,6],[7,8,9]]
y = []
for row in x:
    for col in row:
       y.append(col)#x.append(y)方法是指在x后面添加y
y
#[1,2,3,4,5,6,7,8,9]

 元组

列表是[ ],元组是( )

用法与列表几乎一样, 可以切片,访问,查询【如用count()计算元素个数,用index()查询元素的下标索引值】,拷贝【乘法运算】,拼接【加法运算】,迭代。但是元组不能被修改,不能增删改。

并且元组没有像列表那样的推导式。

打包和解包

打包就是创建元组,解包如下

x = (123,0.4,"python")
a,b,c = x
a
#123
b
#0.4
c
#'python'

左侧变量个数,要等于右边元素个数

补充:元组不可变,但是元组中的元素是可变列表时,列表还是可以被改变的。

字符串

与列表、元组很类似。

下面介绍多种字符串的方法

大小写字母转换

capitalize() 首字母大写,其他小写

casefold() 所有字母小写

title() 每个单词首字母大写

swapcase()  所有字母大小写反转

upper() 所有字母大写

lower() 所有字母小写(只能处理英文)

casefold() 所有字母小写,可以处理多种语言

左中右对齐

center() 居中处理

ljust()  向左对齐

rjust() 向右对齐

()中填充字符数量,默认会用空格填充

也可以center(3,"哈"),此时用"哈"来填充

zfill() 右对齐,0填充

查找

count() 查找指定子字符出现次数,还能指定查找范围

 find()和rfind(),查找下标索引值, 后者从右往左查找

index() 查询下标索引值

替换

replace() 替换

判断

返回布尔类型的值

startwith() 判断指定子字符串是否出现的首位

endwith() 判断指定子字符串是否出现的末位

也可以指定范围,可以指定多个子字符串,只要能够匹配的,就返回true

isupper() 判断是否都为大写,istitle(),islower()等,用法相同。

isalpha() 判断是否都为大写,但是会读取空格。

isspace() 判断是否是空白字符串

isprintable() 判断是否为可打印字符,\n就不是可打印字符

isdecimal() isdigit() isnumeric()都是用于判断数字的

区别如下:

   

 序列

del语句

可以删除整体对象,也可以单独删除对象中的某元素

x = [1,2,3,4,5]
del x[::2]
x
#[2,4]

与clear对比

x = [1,2,3,4]
x.clear()
x
#[]
x = [1,2,3,4]
del x[:]
x
#[]

相关函数

list(),将可迭代对象转化成列表

tuple(),将可迭代对象转化成元组

str(),将可迭代对象转化成字符串

min() 索引可迭代对象中最小值(字符串用与其对应的值做比较)

max()索引可迭代对象中最大值

len() 计算长度,但是有计算范围

sum() 计算求和,可以添加参数指定初始范围

sorted() 重新排序,返回一个全新列表

sort() 重新排序,改变原列表

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值