day6
一,列表的增,删,改,查
list=['喜羊羊',"斗破苍穹","可不可以你也喜欢我","这个杀手不太冷静","画江湖","反贪风暴","神秘海域"]
1.增加:
列表+点+append(新元素)-----在列表末尾添加新元素
列表+点+insert(下标,新元素)------指定下标元素前插入新元素
示例:
num=[1,2,3,4,5,6,7,8,9,10,12,15,16,18,19]获取该列表中所有偶数
a=[]
for i in num:
if i%2==0:
a.append[i]
print(a)
2.修改:
list[元素下标]=“新元素” ------表示在指定元素修改为新元素
3.删除:
del,remove(),pop(),clear()
1. del:
del+列表[下标] ----表示删除列表下指定下标的元素
2, remove()或者rm
列表+点+remove(具体元素)------删除列表中某个元素第一次出现的元素
num=[1,2,3,4,5,6,7,8,9,10,12,15,16,18,19]
删除1-------------num.remove(1)
3, pop( ):
列表+点+pop()----------取出最后一个元素
列表+点+pop( 指定下标)
4, clear:
列表名+点+clear( )-----------清空
4.查:(获取,某个列表中的某一个元素)
列表+点+index()
用法:
str=[1,2,3,4,5,6]
获取3,利用下标正序3的下标为2,倒序3的下标为-4,
通过下标获取元素时下标不能越界
print(str[2],str[-4])
print([1,2,3,4,5,6].[3])
获取列表元素的个数:
len(列表)
二,计数方法
count()
列表+点+count(需要计数的元素)
表示查找该元素在列表中出现的次数
三,排序方法
sort( )
注意:排序中的数据元素需要保持一致 ,
示例:
list[3,6,8]
list,sort() # 默认从小到大排序
print(list) # 此时输出内容为[3,6,8]
revserse( )
语法:列表+点+revserse(空)------表示将该列表反序输出
冒泡排序;
示例:序列长度为n,排序趟数为n-1
确定一次分为一趟
写法:
for i in range(1,len(列表)): -----------确定排序趟数
prin(f’第{i}趟排序’)
print(“顺序码:”,;ist)
for j in range(0,len(list)-i)
if list[j]>list[j+1]:
list[j],list[j+1]=list[j+1],list[j]
print(list)
python中两个变量值的交换:
i=4
j=8
**i,j=j,i 两个值进行交换 **
print(i, j)
四,列表生成式(列表推导式)
作用:能够在创建完一个列表的同时向里面添加元素
示例:
将100以内6的倍数添加到一个列表中
list=[]
for i in range(101):
if i%6==0:
list.append(i)
print(list)
列表推导式写法:
list=[i for i in range(101) if i%2==0]
print(list)
列表生成式效率一定大于append( )
语法:
[结果变量(或者相关公式) for 变量 in 序列 分支结构(可以不写)]
示例:
1.利用列表推导式 存放指定列表中字符串的长度
list1 = [“good”, “nice”, “see you”, “bye”]
普通写法:
nuw_list=[len(i) for i in list1]
print(new_list)
2.利用列表推到式将列表中的整数提取出来
list2 = [True, 17, “hello”, “bye”, 98, 34, 21]
普通写法:
new_list=[i for i in list2 if type(i)==int]
print(new_list)
五,append()和列表生成式性能对比
列表生成式效率一定大于append
六,字符串英文字母的大小写转换
- 所有的大写字母转小写
示例:
str=“GOODBYE”
print(str.lower())
- 所有的小写字母转大写字母
示例:
a=“hello,world”
print(a.upper())
- 字符串中每个单词的首字母转大写
示例:
str=“hello,world”
print(str.title())
- 字符串的首字母转大写
示例:
str=“hello,world”
print(str.capitalize())
七,使用unicode编码进行大小写转换
示例:
将str3="123abcABC"进行大小转换
str3="123abcABC"
str4=""
for i in str3:
if "z"<=i<="z":
str4+=chr(ord(i)-32)
elif "A"<=i<="Z":
str4+=chr(ord(i)+32)
else:
str4+=i
print(str4)
# 打印结果为"123abcabc"
切割(split())----以某个特定符号做分割,分割结果是一个列表
str5="1,2,3,4,5"保留数字去掉不必要的符号
list_6=str5.split(",")
print(list_6)
组合----join():以某个符号为连接点,将序列中的字符串元素连接起来
示例:
str5=“1,2,3,4,5”
print("+".join(str5))
print("".join(str5))
替换:
replace(被替换字符串,要替换的字符串, 数值)------数值不写表示全部,如果写了表示从左向右替换数值次
示例:
str5="1,2,3,4,5"用点替换掉顿号
print(str5.replace(".",","))
str5="1,2,3,4,5"用空格替换掉顿号从左至右替换一次
print(str5.replace(",","",1))
清洗
strip()------------默认将字符串两端的空格(空格,\t,\n)去掉,可以指定要清洗的元素
示例:
八,练习
插入一个数字并按照顺序排列
list1=[1,2,3,4,5,6,7,8]
num=int(input("请输入一个数字:"))
for index,x in enumerate(list1):
if x>=num:
list1.insert(index,num)
else:
list1.append(num)
print(list1)
删除列表中大于60的元素
scores=[56,25,68,29,49,85,49,96,75,66]
for x in range(-len(scores),0):
if scores[x] < 60:
del scores[x]
print(scores)
scores=[56,25,68,29,49,85,49,96,75,66]
for x in range(len(scores)-1,-1,-1):
if scores[x] < 60:
del scores[x]
print(scores)
scores=[56,25,68,29,49,85,49,96,75,66]
index=0
while index<len(scores):
if scores[index]<60:
del scores[index]
else:
index+=1
print(scores)
九,列表相关函数
sum max min sorted len list
-
sorted ----对原序列的元素按照重小到大排序,产生一个新序列
-
sorted(序列, reverse=True)
scores=[56,25,68,29,49,85,49,96,75,66]
a=sorted(scores)
print(a)
# 打印结果为
[25, 29, 49, 49, 56, 66, 68, 75, 85, 96]
scores=[56,25,68,29,49,85,49,96,75,66]
a=sorted(scores,reverse=True)
print(a)
# 打印结果为
[96, 85, 75, 68, 66, 56, 49, 49, 29, 25]
- list 列表类型转换
将序列中的元素作为列表的元素,所有的序列都可以转换成列表
str1="123abc"
list1=list(str1)
print(list1)
# 打印结果为
['1', '2', '3', 'a', 'b', 'c']
- max min
最大值,最小值
十,列表相关方法:列表.方法名( )
1. 列表。copy( ) -----------复制源列表,产生一个一样的列表
2. 列表,count(元素)---------统计指定元素的个数
3. 列表,extend( 序列)---------将序列中的元素全部添加到列表的最后
a = [1,2,3]
a.extend("ABC")
print(a)
# 打印结果为
[1, 2, 3, 'A', 'B', 'C']
a = [1,2,3]
a.extend([100,200])
print(a)
# 打印结果为
[1, 2, 3, 100, 200]
4. 列表,index(元素)---------获取指定元素在列表中的下标值(从0开始的下标),如元素重复,取第一个元素的下标,如果元素不存在代码报错
a = [1,2,3]
print(a.index(2))
# 打印结果为1
- 列表,reverse( )---------对源列表逆序
a = [1,5,3,8,21,36,15,23]
a.reverse()
print(a)
# 打印结果为
[23, 15, 36, 21, 8, 3, 5, 1]
- 列表,sort()---------将列表元素从大到小排序,原序列上排序
- 列表,sort(reverse=Tue)------将序列中的元素从大到小排列