第二讲 list 列表

一.列表的基本介绍

什么是列表?

列表由一系列按特定顺序排列的元素组成,使用[]作为定界符,用逗号作为元素分隔符。

List的特点

有序可变,可以是任意类型数据。

列表的数据结构

使用下标地址,双下标(正下标和负下标)正下标从零开始,负下标从-1开始。

A=[12,34,56,[23,’a’],89,”我是元素”]

12

34

56

[23,’a’]

89

我是元素

0 1 2 3 4 5

A[0] a[5]

- -

案例:

a=[12,45,67,"我们是元素“['a',"ffff"]]

print(a)

print(a[0],a[2],a[3])

print(a[4])

print(a[0]+a[1])

print(-1)

列表可以嵌套,地址采用二维空间地址,从下标0开始

B=[23,34,45,[23,67,89],90]

Print(a[4])

Print(a[4][0])

Print(a[4][1])

Print(a[-1])

Print(a[-1][0])

Print(a[-1][-1])

二.List的基本操作

获取某个元素的下标地址

格式 list.index(元素值)

功能:获得某个元素的下标地址

案例:

a=[12,45,67,"我们是元素“['a',"ffff"]]

Print(“12的下标地址=”,a.index(12))

Print(“[‘a’,”ffff”]的下标地址=”,a.index([‘a’,”ffff”])

2使用下标地址改变元素的值

格式 list[下标地址]=值

功能 改变某个元素的值

案例:

a=[12,45,67,"我们是元素“['a',"ffff"]]

A[0]=234

A[3]=”我们变了”

A[4]=[“a”,”bcd”]

Print(a)

3.使用下标地址删除元素

格式 del 元素的下标地址,多个用逗号分隔

功能 删除某个元素或同时删除多个元素

案例

a=[12,45,67,"我们是元素“['a',"ffff"]]

A[0]=234

A[3]=”我们变了”

A[4]=[“a”,”bcd”]

Print(a)

Del a[0]

Del a[3]

Print (a)

三.List的加法和乘法

+

格式 list1+list2+list3+.....

功能 将多个列表合成一个列表

案例

A=[1,2,3,4,5,5]

B=[45,67,89]

C=[“aa”,”bb”,”cc”]

D=a+b+c

Print(d)

*

格式 list1*n

功能 将一个列表以多倍的形式生成一个新列表

案例 A=[1,2,3,4,5,5]*4

B=[45,67,89]

C=[“aa”,”bb”,”cc”]*4

Print(a)

Print(c)

四, list的内置函数

1 len()

格式 len(列表)

功能 求一个列表的长度,就是元素的个数。

案例

a=[1,2,3,4,5,6,7,7,8,55,55,55,5,5]

print("a的长度=”,len(a))

2 max()

格式 max(列表)

功能 求一个列表的最大值

案例

3 min()

格式 min(列表)

功能 求一个列表的最小值

案例

a=[1,2,3,4,5,6,7,7,8,55,55,55,5,5]

print("a的长度=”,len(a))

Print(max(a))

Print(min(a))

五 list的方法

查看lsit的方法

格式 dir([])

功能 查询list数据类型的方法

在list尾部追加新元素

格式 在列表尾部追加元素,元素必须是一个元素,可以其他数据类型

案例:

x=[100,200,300]

x.append(888)

x.append({999,666})

x.append([2,3,4,])

print(x)

扩展list的内容

格式 list.extend(参数)

功能 在列表尾部扩展元素,元素的参数必须是一个,参数必须是对象型数据。

特别说明:字符串对象每个字符作为一个元素扩展。

案例

x=[100,200,300]

x.extend({123,456})

x.extend(‘ffffffff’)

X.extend(“xxxxxxx”)

print(x)

给列表插入数据元素

格式 list.insert(下标地址,值)

功能 在任意位置插入元素,参数必须是一个,参数可以是对象型数据

特别说明 如果插入位置没有足够大的下标地址时,元素插入尾部。

如果有插入位置,元素就插入在这个位置上原有的数据后移

x=[100,200,300]

x.insert(98,45)

x.insert(-1,38)

X.insert(-8,21)

print(x)

删除指定元素

格式 list.remove(值)

功能 删除指定元素,下一个元素上移。

案例

x=[100,200,300]

x.remove(200)

print(x)

使用下标地址删除指定元素

格式 list.pop(下标)

功能 删除指定元素,默认删除栈顶元素。

案例

x=[100,200,300,567,890,345]

x.pop()

x.pop(3)

print(x)

list的排序

7.1list的乱序

使用random模块的方法shuffle乱序

7.2list的从小到大排序

7.3list的颠倒排序

import random #随机数模块

a=[2,3,4,5,6,799,12,34,78,90]

print("原始数据",a)

random.shuffle(a)

print("乱序数据",a)

a.sort()

print("从小到大排序",a)

a.reverse()

print("颠倒排序数据",a)

切片

是一种访问数据的操作,可以任意范围,相当灵活。

格式 list[ 起始位置:结束位置:步长]

功能 从起始位置到结束位置按步长访问数据

应用格式:

List[::]

List[:]

List[::1]

List[::2]

案例

a=[2,3,4,5,6,799,12,34,78,90]*4

print(a)

print(a[::])

print(a[:])

print(a[::1])

print(a[::2])

print(a[::3])

print(a[::4])

案例

a=[2,3,4,5,6,799,12,34,78,90]

print(a[4:8])

print(a[2:10])

print(a[2:10:3])

print(a[::-1])

print(a[::-2])

递推式(表达式)构造列表

递推式(表达式)语法

Expression for Expression1 in sequence1

For Expression2 in sequence2

for Expression3 in sequence3

If condition

功能 Expression 是个表达式

Expression1表达式中的变量1,如果在sequence1中循环迭代每一个元素来及时表达式的值,其他变量相同。

If condition 带条件的计算递推式(表达式)

案例 a=[2,3,4,5]

b="ab"

cc=[(x*y)for x in a for y in b]

print(cc)

c=[23,45,67,89]

dd=[(i+j)for i in a for j in c if i+j>=48]

print(dd)

菜鸟list

Python列表函数&方法

Python包含以下函数:

序号

函数

2

max(list)

返回列表元素最大值

3

min(list)

返回列表元素最小值

4

Python包含以下方法:

二.字符串

什么是字符串

用单引号,双引号和三引号括起来的任意长度的字符串组合。

单引号,双引号只能是单行数据,三引号可以是多行数据,如果没有任何字符就空串。

字符串的下标地址(索引 index)

采用双下标地址,从0或-1开始

通过索引对字符串操作

就是使用下标地址从正向和反向访问数据

案例:

a="65465419684986"b='65468168168468'c='''5125854925941156245454546546416'''d="a5dsa5d1f6fwe1ew1e3f3w6d1ew61d6e1f"e="d845wd6a4dew8x777777777777777777777777777777"print(a)

print(b)

print(c)

#使用下标访问数据print(a[0],a[2])

print(d[0],d[10])

print(c[0]+c[10])

print(a[-1],b[-3],c[-20 ])

字符串的切片操作

案例:

print(a[:-2])切字符串a中的数据到-2位置的内容

print(a[::-1])反向切字符串a的数据

print(a[::-3])每隔3个字符反向切字符串a中的数据

print(e)

print(e[3:10])从第4个字符切到第个字符 不包括第10个

print(e[3:10:2])每隔2个字符从下标3的位置开始到下标为10的位置切字符串e中的数据

print(e[3:10:-2])切0个字符

print(e[3:10:4])每隔4个字符切一刀

5.字符串中的转义符字符

字符

含义

\\

反斜杠

\’

单引号

\”

双引号

\a

响铃

\b

退格

\e

转义

\n

换行

\w

纵向制表符

\f

换页符

\t

横向制表符

\000

\ooo

八进制的ASCII码

\xyy

十六进制数,yy代表字符

案例:

a="6546\5419\\684\n986"b='6546\'81681\a\a\a\a684\b68'c='''5125854925941156245454546546416'''d="a5dsa5d1f\t6fwe1ew1e3\wf3w6d1ew61d6e1f"e="d845wd6a4dew8\fx777777777777777777777777777777"print(a)

print(b)

print(d)

print(e)

6. 字符串运算

1)加法运算符

格式 字符串1+字符串2+字符串3

功能

2)*运算符

格式 字符串1*n

3)逻辑运算符

>< = <= >= ==

4)In和not in运算符

案例:a="abc"b="123"c="yyyddd"d=a+b+c

e=a*2+c*4

print(d)

print(e)

x=a

print(id(a))

print(id(x))

ifa==x:

print("7777777")

else:

print("684984986496")

x=123456

print(id(x))

ifa==x:

print("7777777")

else:

print("684984986496")

if'y'inc :

print("7777777")

else:

print("66666666")

字符串的格式化输出

1)用%操作符格式化字符串

字符串模板参数

符号

功能

*

定义宽度或小数位

-

表示左对齐,正数前无符号,负数前添加符号

+

表示右对齐,正数前添加正号,负数前添加负号

表示右对齐,正数前添加空格,负数前添加负号

#

在八进制数前添加0在十六制数前面显示0x或者0X

0

表示右对齐,显示的数字前面天才0而不是默认的空格

%

%%输出一个%字符

m.n.

m是显示的最小总宽度,n是小数点后的位数(如果可以的话)

字符串格式化控制符

符号

功能

%c

格式化字符的ASCII码

%S

格式化字符串

%d

格式化整数

%u

格式化无符号整形

%o

格式化无符号八进制数

%x

格式化无符号十六进制

%X

格式化无符号十六进制(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

用科学计数法格式化浮点数

%g

%f和%e的简写

%G

%f和%E的简写

%p

用十六进制数格式化变量的地址

a="abc"b="123"c="yyyddd"print("a字符串的内存地址:%x"%id(a))

print("a字符串的内存地址:%X"%id(a))

print("b=%d"% int(b))

print("b=%u"% int(b))

print("b=%o"% int(b))

print("b=%x"% int(b))

print("b=%c"% 98)

print("%s"% "sadsadsadsadsadsa")

d=123456.667788

print("d=%f"% d)

print("d=%.1f"% d)

print("d=%.2f"% d)

print("d=%.0f"% d)

print("d=%f%%"% d)

print("d= %+20.2f"% d)

print("d= %-20.2f"% d)

二,用format()函数格式字符串

格式

Str.format(字符{},字符{},{}....)

说明:

1.format(字符{0},字符{1},{2}....)字符串格式模板。

2.{}占位符:可以是多个,在字符串的任意位置,这些占位符接收format()方法中的参数,用下标顺序传递参数

3.位置参数的匹配

在模板字符串中,如果占位符{}为空,将按照参数出现的顺序进行传递,如果占位符{序号}指定了序号,则按照序号传递

格式:字{0}符{}串.format(实参1,2)

案例:

print("{} 在{}学校{}".format("王二小","李二小","张小二"))

print("{} 在{}学校{}".format("王二小","李二小","张小二"))

print("{name}在我们的{age}字符{xb}串里".format(age=23,name='王小二',xb='女'))

说明:占位符使用名称占位符,参数使用名称赋值数据

a="今年土豆的产量比去年提高了%3.2f%%"b=29.345

c=a % b

print(c)

print("今年土豆的产量比去年提高了%3.2f%%"%23.456)

参数按对应名称传递。

2) 关键字参数

格式:字{名字2}符{名字1}串.format(名字1=值,名字2=值)

参数匹配时按名称传递。

占位符名称和实际参数名顺序无关。

3)下标参数

如果实参是列表,字符串等数据类型,可以是索引下标地址来传递参数

字{0[1]}符{1[2]}串.format(实参0,实参1)

说明:{0[1]}取值是实参0的下标为1的值{1[2]};取值是实参1的下标为2的值

模板字符串的格式控制符

[ : [fill] align] [sign] [width] [,] [.precision] [type]

控制符

含义

:

引导符,必须加

Fill

空白处填充的字符

Align

对齐方式

<

内容左对齐

>

内容右对齐

^

内容居中对齐

Sign

可选参数,数字前的符号

+

在正数数值前添加正号,在负数数值前添加负号

-

在正号不变,在负数数值前添加负号

空格

在正数数值前添加空格,在负数数值前添加负号

Width

可选参数,指定格式化后的字符串所在的宽度

逗号(,)

可选参数,为数字添加千分位分隔符

Precision

可选参数,指定小数位的精度

Type

可选参数,指定格式化的类型

字符串的内置函数(操作)

5.1首字符大写

格式 string.copitalize()

功能:将字符串首字符变大写其他都变小写

5.2字符串居中输出

格式 string.center(宽度)

功能:将字符串在指定宽度范围内居中输出

案例:a="who is student,YOU IS STUDENT"print(a.capitalize())

print(a.center(50,"*"))

5.3统计字符次数

格式string.count(str,beg=0,end=n)

功能:在字符串中统计str字符出现的次数

Beg:指定统计的开始位置

End:指定统计的结束位置

a=”s

5.4检查结束符

格式 string.endswith(obj,beg=0,end=n)

功能:检查字符串是否已obj结束,如果指定了范围就检查范围内是否已obj结束,返回逻辑值

Beg:指定开始位置

End:指定结束位置

5.5检查开始符

格式 string.startswith(obj,beg=0,end=n)

功能:检查字符串是否已obj开始,如果指定了范围就检查范围内是否已obj开始,返回逻辑值

Beg:指定开始位置

End:指定结束位置

案例:a="who is student,YOU IS STUDENT"print("a的长度{}".format(len(a)))

print("who在a中下标地址2到20内存的次数{}".format(a.count("who")))

print("who在a中下标地址2到20内的次数{}".format(a.count("who"),2,20))

print("a字符串的开始字符是{},对不对={}".format("w",a.startswith("w")))

print("a字符串的范围(12-30)开始字符是{},对不对={}".format("st",a.startswith("st",12,30)))

print("a字符串的结束字符是{},对不对={}".format("T",a.startswith("T")))

print("a字符串的范围(12-30)结束字符是{},对不对={}".format("st",a.endswith("st",12,30)))

5.6字符串解码

格式 string.decode(encoding=’UTF-8’,error=’错误提示信息’)

功能:以encoding指定的编码格式解码字符串,错误出现提示信息

5.7字符串解码

格式 string.encode(encoding=’UTF-8’,error=’错误提示信息’)

功能:以encoding指定的编码格式解码字符串,错误出现提示信息

a="我们编码了"print(a)

print(a.encode("gb2312"))

print(a.encode("utf-8"))

5.9字符串查找

格式 string.find(str,beg=0,end=n)

功能:查找str是否在字符串中,如果在 返回str在字符串的开始下标地址,否则返回-1beg和end在指定范围内查找。

Beg:指定开始位置

End:指定结束位置

5.11字符串查找

格式 string.index(str,beg=0,end=n)

功能:查找str是否在字符串中,如果在返回str在字符串的开始下标地址,否则返回错误,beg和end在指定范围内查找。

Beg:指定开始位置

End:指定结束位置

5.12字符串查找

格式 string.rindex(str,beg=0,end=n)

功能:从右边查找str是否在字符串中,如果在返回str在字符串的开始下标地址,否则返回错误,beg和end在指定范围内查找。

Beg:指定开始位置

End:指定结束位置

案例:

a="stdent is goods swo is you sfffa sabde"print("s在a的位置是={}".format(a.find("s")))

print("you在a的位置是={}".format(a.rfind("you")))

print("you在a的位置是={}".format(a.rfind("you",2,20)))

print("you在a的位置是={}".format(a.index("st")))

print("you在a的位置是={}".format(a.index("st",3,40)))

print("you在a的位置是={}".format(a.rindex("st")))

print("you在a的位置是={}".format(a.rindex("st",6,20)))

5.13分割字符串

格式 string.split(str=”分割符”,num=n)

功能:使用指定的分割符分割字符串,默认为空。Num=n指定将字符串分成n个子字符串

5.14分割字符串2

格式 string.splitlines([keepends])

功能:按照(\r,\r\n,\n)这几个特殊字符分割,返回包含n行的列表,如果keepends为false,不包括换行符

如果keepends为true则保留换行符。

5.15分割查找

格式 string.partition(str1)

功能:它是find()和split()的结合体。从str出现的第一个位置起,把字符串string分割成3个元素的元组(string_pre_str,string_post_str),如果string不包括str则string_pre_str=string

5.16分割查找

格式 string.rpartition(str1)

功能:它是find()和split()的结合体。从str出现的右边第一个位置起,把字符串string分割成3个元素的元组(string_pre_str,string_post_str),如果string不包括str则string_pre_str=string

5.15替换字符串

格式 string.replace(str1,str2,num=n)

功能将str1替换为str2,n指定替换次数

5.16 删除字符串

格式 =string.lstrip()

功能:删除字符串的前导空格

格式 string.rstrip()

功能 删除字符串的尾部空格

格式 string.strip()

功能:删除字符串的前后两部分空格

案例:

c=" dasjohdwqkasdsad "print("c的长度={}".format(len(c)))

print("c的删除前导空格后的长度={}".format(len(c.lstrip())))

print("删除去导空格后的内容={}".format(c.rstrip()))

print("c的删除尾部空格后的长度={}".format(len(c.rstrip())))

print("c的删除尾部空格后的内容={}".format(c.rstrip()))

print("c的删除空格后的长度={}".format(len(c.strip())))

print("c的删除空格后的长度={}".format(c.strip()))

大小写切换

c=" dasjohdwqkasdsad "d="ASDHIHAFUIAHFJIA"print(c.upper())

print(d.lower())

5.17判断一个字符串中有没有字符

格式 string.isalnum()

功能 判断string中是不是有字符存在

,如果有返回true否者则返回false

说明:字符是字母和数字的组合,特殊符号不是字符

5.18判断一个字符串中有没有字符

格式 string.isalpha()

功能 判断string全部是字母

,如果是返回true否者则返回false

说明:字符是字母和数字的组合,特殊符号不是字符

python定界符有哪些_Python字符串相关推荐

  1. python编程字符输入连接_python字符串连接的N种方式总结

    python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法:str1, str2 奇怪的字符串方式:str1 st ...

  2. python format函数实例_Python字符串格式化,format格式化函数详细使用

    Python接触比较多的是字符串,那么操作字符串也就多.Python 支持格式化字符串的输出 . 尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符的字符串中. 代码 ...

  3. python语言格式化输出_Python字符串格式化输出

    原博文 2019-11-22 12:48 − 本文链接:https://www.cnblogs.com/zyuanlbj/p/11910913.html 使用占位符%s name = '小飞' pri ...

  4. python对象底层原理_Python字符串对象实现原理详解

    在Python世界中将对象分为两种:一种是定长对象,比如整数,整数对象定义的时候就能确定它所占用的内存空间大小,另一种是变长对象,在对象定义时并不知道是多少,比如:str,list, set, dic ...

  5. python设置字符间距_python字符串处理以及字符串格式化

    一.python字符串处理 目录: 1.算长度(len),某个元素出现的次数(count) 2.切片   [ ],repr:把不可见字符显示出来 3.查找 #find,rfind从右边查找 4.字符串 ...

  6. python关键字中文意思_python 字符串只保留汉字的方法

    如下所示: def is_chinese(uchar): """判断一个unicode是否是汉字""" if uchar >= u'\ ...

  7. python整数格式化表达式_Python字符串格式化表达式和格式化方法

    Python格式化字符串由两种方式可以选择:一种是格式化表达式(Formatting Expression),一种是格式化方法(Formatting Method).其中格式化表达式在全Python版 ...

  8. python定界符有哪些_Python 开发中有哪些高级技巧?

    和大多数现代编程语言一样,在 Python 中函数是抽象和封装的主要方法.作为开发人员,你平时可能写过几百个函数,但不是所有函数的作用都一样.如果写了个"坏"函数,会直接影响代码的 ...

  9. python网址编码转换_python字符串与url编码的转换实例

    python字符串与url编码的转换实例 更新时间:2018年05月10日 10:27:46 作者:Tangzongyu123 今天小编就为大家分享一篇python字符串与url编码的转换实例,具有很 ...

最新文章

  1. python远程登录linux命令,Python+requests通过paramiko远程登录Linux执行sh命令
  2. Spring Cloud Alibaba - 17 Nacos Config 配置中心 应用篇
  3. c#扩展方法奇思妙用高级篇七:“树”通用遍历器
  4. 前端笔试能查吗_老码农的字节跳动前端面试总结
  5. JDK的可视化工具系列 (四) JConsole、VisualVM
  6. 重学前端学习笔记(四十一)--CSS的颜色
  7. 四方支付系统,聚合平台搭建
  8. 软考高项3门45分总结及分享
  9. python爬虫记录
  10. 百度编辑器上传图片后转到七牛存储
  11. “天天向上“py代码
  12. android调手机通话,手机通话声音小?这样设置能让音量放大几倍,安卓苹果手机通用...
  13. 第三方支付机构和非银行支付机构的区别?第三方支付客户备付金介绍
  14. 区块链从入门到精通 - 区块链培训
  15. Day357358359360.JVM监控及诊断工具-GUI -JVM
  16. 联想拯救者R7000安装Ubuntu18.04
  17. 通过‘PyQt6‘中的QWidget类创建一个含有按钮的窗口 1
  18. ubuntu下完全卸载 opencv库 详细教程
  19. 程序员,如果性格内向要做些什么?
  20. Python WEB 自动化测试实战,项目场景(详细)

热门文章

  1. java map key是否存在_java如何判断map集合中是否存在key?
  2. 视频 --- 基础概念
  3. 哈工大信息内容安全实验
  4. 财务自由?这样做微信开发可以吗?
  5. GIS教程之将栅格数据 raster data发布到 Web 的 3 个简单步骤
  6. 你见过最听话的狗狗有多听话?
  7. JEC-QA:A Legal-Domain Question Answering Dataset 论文阅读
  8. 不论你技术多牛,这13条职场“潜规则”,越早知道越好!
  9. Altium Designer一些好用的系统设置
  10. 【多校训练】2021牛客多校第二场