标签:另一个 key 第一个 查看 encode sign html pos upper
第二讲 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)
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的方法
格式 dir([])
功能 查询list数据类型的方法
格式 在列表尾部追加元素,元素必须是一个元素,可以其他数据类型
案例:
x=[100,200,300]
x.append(888)
x.append({999,666})
x.append([2,3,4,])
print(x)
格式 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)
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包含以下函数:
序号 |
函数 |
1 |
len(list) |
2 |
max(list) |
3 |
min(list) |
4 |
list(seq) |
Python包含以下方法:
序号 |
方法 |
1 |
list.append(obj) |
2 |
list.count(obj) |
3 |
list.extend(seq) |
4 |
list.index(obj) |
5 |
list.insert(index, obj) |
6 |
list.pop([index=-1]) |
7 |
list.remove(obj) |
8 |
list.reverse() |
9 |
|
10 |
list.clear() |
11 |
list.copy() |
二.字符串
用单引号,双引号和三引号括起来的任意长度的字符串组合。
单引号,双引号只能是单行数据,三引号可以是多行数据,如果没有任何字符就空串。
采用双下标地址,从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))
if a==x:
print("7777777")
else:
print("684984986496")
x=123456
print(id(x))
if a==x:
print("7777777")
else:
print("684984986496")
if ‘y‘ in c :
print("7777777")
else:
print("66666666")
1)用%操作符格式化字符串
符号 |
功能 |
* |
定义宽度或小数位 |
- |
表示左对齐,正数前无符号,负数前添加符号 |
+ |
表示右对齐,正数前添加正号,负数前添加负号 |
<sp> |
表示右对齐,正数前添加空格,负数前添加负号 |
# |
在八进制数前添加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
说明:字符是字母和数字的组合,特殊符号不是字符
标签:另一个 key 第一个 查看 encode sign html pos upper
原文地址:https://www.cnblogs.com/fengmofeng/p/11687548.html