目录

一、  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
#Truex = [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() 重新排序,改变原列表

python序列—列表,元组,字符串相关推荐

  1. python实验二序列_python 学习笔记 二 序列, 列表, 元组, 字符串

    序列 序类是一个集合概念, Pthon包括六种内建序列: 列表, 元组, 字符串, Unicode字符串, buffer对象和xrange对象. 其中, 我们最长用的要数前三个. 通用序列操作 1. ...

  2. Python中列表和字符串的反转

    要求: 原列表:[13, 30, 42, 85, 9, 45] 反转后的列表:[45, 9, 85, 42, 30, 13] 原字符串:hello 反转后的字符串:olleh Python现成的反转功 ...

  3. 手写Python中列表和字符串的反转

    要求: 原列表:[13, 30, 42, 85, 9, 45] 反转后的列表:[45, 9, 85, 42, 30, 13] 原字符串:hello 反转后的字符串:olleh Python现成的反转功 ...

  4. python中列表 元组 字典 集合的区别

    参考文章:python中列表 元组 字典 集合的区别

  5. python序列类型包括字符串_python序列类型字符串列表元组

    字符串 序列:序号 列 012345678 索引 序列类型,就是带有索引的数据类型:字符串/列表/元祖 name = 'wuhao dsb' # 012345678 name3 = name[0] n ...

  6. python随机数列表变成字符串_Python循环、随机数、列表、元组、字符串、集合、jieba分词...

    Python中的循环 while循环: while 循环条件: (4个空格)循环体 计算1-100 之间的累加和 sum_num = 0 i = 1 while i <= 100: #对coun ...

  7. 字典删除多个键值对方法_Life is short,you need Python——Python序列(元组、字典、集合)...

    一.元组 tuple 列表属于可变序列,可以任意修改列表中的元素. 元组属于不可变序列,不能修改元组中的元素.因此,元组没有增加元素.修改元素.删除元素相关的方法. 下面只介绍元组的创建和删除,元组中 ...

  8. python入门——列表+元组+字典+集合

    列表 列表是最常用的python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 1.列表嵌套(相当于二维数组) a=["b",'c','d'] ...

  9. python将列表转换为字符串_每日一课 | Python将文件读入列表

    读取日志文件的Python示例,一行一行地进入列表. # With '\n', ['1\n', '2\n', '3'] with open('/www/logs/server.log') as f: ...

最新文章

  1. html5伪类效果延缓,CSS3实现伪类hover离开时平滑过渡效果示例
  2. [转]RxHttp 一条链发送请求,新一代Http请求神器(一)
  3. 多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态
  4. github java开源项目经验_Java 开源项目 GitHub 趋势周报 20201230
  5. iOS之CATiledLayer的属性简介和使用
  6. Linux-Ubuntu首次使用root账户登录
  7. python字符串格式化 说明符顺序_python实践分享:格式化字符串时使用.format方式还是“%”...
  8. kubernetes Deployment介绍
  9. Login控件在浏览器中打开时显示英文
  10. oracle数据库行转列(含例子表结构及查询sql)
  11. 图片在线裁剪和图片上传总结
  12. dBm、mw、dB三者之间的关系
  13. css滤镜、混合模式、hls颜色值
  14. 不同网段实现全网互通
  15. js获取当前是第几周
  16. 【申博攻略】一.北交计算机学院学术型博士“申请-考核”攻略(招生简章篇)
  17. DNS服务之智能DNS
  18. useNavigate使用报错
  19. 博客13周年:网站暗淡的一年
  20. 找准EMS,企业争做“碳”路者

热门文章

  1. 西北工业大学计算机操作系统实验_西北工业大学,2020年计算机考研考情分析...
  2. 办理上海居住证资料__网址
  3. IDEA下使用maven配置Spark开发环境
  4. HTML+CSS+JS网页设计期末课程大作业 --电影主题 网页规划与设计
  5. PCIE AER Linux 驱动详解
  6. 英文翻译葡萄牙语-批量英文转换葡萄牙语-各种语言免费互译转换
  7. 多个excel工作簿合并_「Excel技巧」批量将多个工作簿的工作表合并到一个工作簿中...
  8. 使用FreeMarker给word文档里生成柱状图
  9. 嵌入式是个什么玩意儿?
  10. linux公司面试和工作中常用命令收藏版