首页 技术 正文
技术 2022年11月9日
0 收藏 843 点赞 3,342 浏览 4362 个字

1.列表

1   list.append(obj)
在列表末尾添加新的对象
2 list.count(obj)
统计某个元素在列表中出现的次数
3 list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj)
将对象插入列表
6 list.pop(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj)
移除列表中某个值的第一个匹配项
8 list.reverse()
反向列表中元素
9 list.sort([func])
对原列表进行排序

python里列表相当于其他程序中的数组

1.1 取值
>>> name=["zhangsan","lisi","wangwu","zhaoliu",190,33]
>>> name[0]
'zhangsan' #取第一个元素
>>> name[1]
'lisi'
>>> name[-1]
33 #取最后一个元素
>>> name[-2]
1901.2 取部分值

 >>> name[0:2]
 [‘zhangsan’, ‘lisi’]

>>> name[-5:-1]   #只能从左到右取值
[‘lisi’, ‘wangwu’, ‘zhaoliu’, 190]
>>> name[-5:]     #取到最后一个值
[‘lisi’, ‘wangwu’, ‘zhaoliu’, 190, 33]

1.3 增、删、改、查列表值

>>> name.insert(0,”Jasper”)  #在指定位置插入数据使用insert
>>> name
[‘Jasper’, ‘zhangsan’, ‘lisi’, ‘wangwu’, ‘zhaoliu’, 190, 33]

>>> name.append(“Desperado”) #在最后面增加数据使用append
>>> name
[‘Jasper’, ‘zhangsan’, ‘lisi’, ‘wangwu’, ‘zhaoliu’, 190, 33, ‘Desperado’]

>>> name.remove(190)      #删数据,remove是删除元素的值,与pop\del方法不同
>>> name
[‘Jasper’, ‘zhangsan’, ‘lisi’, ‘wangwu’, ‘zhaoliu’, 33, ‘Desperado’]

>>> name.pop(0)     #pop删除元素
‘Jasper’
>>> name
[‘zhangsan’, ‘lisi’, ‘wangwu’, ‘zhaoliu’, 33, ‘Desperado’]

>>> del name[-1]      #del删除元素,del可以删除多个连接的元素del name[0:3],删除所有 del name
>>> name
[‘zhangsan’, ‘lisi’, ‘wangwu’, ‘zhaoliu’, 33]

>>> name[-1]=10000    #改数据指定更新数据的位置及更改的新数据  name[3]=”wangwu(admin)”
>>> name
[‘zhangsan’, ‘lisi’, ‘wangwu’, ‘zhaoliu’, 10000]

1.4 步长

name=["zhangsan","lisi","wangwu","zhaoliu","xiaosan","xiaosi"]
print(name[0:-1:2]) #第一个:是打印左边的元素第二个:是右边的元素,2为打印的元素步长,也可以[::2],默认步长 是1
实际中列表是有很多元素的
如我想知道在一个列表中有没有Jasper这个元素,使用in
print("Jasper" in name)
False
1.5 统计列表元素个数
name=[11,23,54,32,23,23,10,64,64,11,11,11,32,11]
print(name.count(11))示例:统计Jasper在列表中的次数
name=["zhangsan","lisi","wangwu","zhaoliu","xiaosan","xiaosi","Jasper"]
if "Jasper" in name:
co=name.count("Jasper")
print("%s Jasper is in name"%co)
else:
print("wu")
1.6 index从列表中找出某个值第一个匹配项的索引位置
name=[11,23,54,32,23,23,10,64,64,11,11,11,32,11]
print(name.index(64))示例:统计Jasper出现的次数通过index找出匹配项的位置修改元素
name=["Jasper","lisi","wangwu","zhaoliu","xiaosan","xiaosi","Jasper"]
for i in range(name.count("Jasper")): #使用循环统计Jasper出现的次数
    ind=name.index("Jasper")             #使用index索引第一次出现的位置
name[ind]=123 #修改索引出元素
print(name)运行结果:
[123, 'lisi', 'wangwu', 'zhaoliu', 'xiaosan', 'xiaosi', 123]1.7 合并两个列表元素
name=["Jasper","lisi","wangwu","zhaoliu","xiaosan","xiaosi","Jasper"]
name2=[1,2,3,"Jasper"]
name.extend(name2)
print(name)
运行结果:
['Jasper', 'lisi', 'wangwu', 'zhaoliu', 'xiaosan', 'xiaosi', 'Jasper', 1, 2, 3, 'Jasper'] #追加到列表后面1.8 反转列表元素 reverse
user=["阿大","阿二","阿三","阿四","小五","小六","小七"]
user.reverse()
print(user)
运行结果:
['小七', '小六', '小五', '阿四', '阿三', '阿二', '阿大']1.9 排序 sort
user=["阿大","阿二","阿三","阿四","小五","小六","小七"]
user.sort()
print(user)num=[3,2,3,4,5,6,7,3]
num.sort()
print(num)运行结果:

[‘小七’, ‘小五’, ‘小六’, ‘阿三’, ‘阿二’, ‘阿四’, ‘阿大’]
[2, 3, 3, 3, 4, 5, 6, 7]

#在python3的列表元素中字符串和数据不可以混合排序,python2可以

1.10 复制列表元素copy

user=["阿大","阿二","阿三","阿四","小五","小六","小七"]user3=user.copy()
user3[0]="456"
print(user3)
print(user)
运行结果:

[‘456’, ‘阿二’, ‘阿三’, ‘阿四’, ‘小五’, ‘小六’, ‘小七’]
[‘阿大’, ‘阿二’, ‘阿三’, ‘阿四’, ‘小五’, ‘小六’, ‘小七’]

#使用copy复制列表与原列表没有关系,使用变量会修改原变量

user=["阿大","阿二","阿三","阿四","小五","小六","小七"]user2=user
user2[0]="123"
print(user2)
print(user)
运行结果:

[‘123’, ‘阿二’, ‘阿三’, ‘阿四’, ‘小五’, ‘小六’, ‘小七’]
[‘123’, ‘阿二’, ‘阿三’, ‘阿四’, ‘小五’, ‘小六’, ‘小七’]

1.11 列表嵌套列表复制修改

user=["阿大","阿二","阿三",[1,2,3,4,5],"阿四","小五","小六","小七"]
user[0]="00000"
user2=user.copy()
user2[3][1]="abcdefg" #修改元素3(是个列表)中第二个元素
print("user=",user)
print("user2=",user2)
运行结果:

user= [‘00000’, ‘阿二’, ‘阿三’, [1, ‘abcdefg’, 3, 4, 5], ‘阿四’, ‘小五’, ‘小六’, ‘小七’]
user2= [‘00000’, ‘阿二’, ‘阿三’, [1, ‘abcdefg’, 3, 4, 5], ‘阿四’, ‘小五’, ‘小六’, ‘小七’]

#copy只会复制列表的第一层,列表里的列表不会copy,可以看成是一个软链接,这里修改user2同时user也修改了

如果想把列表里的列表一同copy过去可以使用copy模块里的deepcopy(深度copy)

import copy   #导入copy模块
user=["阿大","阿二","阿三",[1,2,3,4,5],"阿四","小五","小六","小七"]
user[0]="00000"
user2=user.copy()
user2[3][1]="abcdefg"
print("user=",user)
print("user2=",user2)user3=copy.deepcopy(user) #deepcopy user列表到user3新列表名
user3[3][2]=11111111111 #修改user3中列表中的列表
print("user3=",user3)
运行结果:

user= [‘00000’, ‘阿二’, ‘阿三’, [1, ‘abcdefg’, 3, 4, 5], ‘阿四’, ‘小五’, ‘小六’, ‘小七’]
user2= [‘00000’, ‘阿二’, ‘阿三’, [1, ‘abcdefg’, 3, 4, 5], ‘阿四’, ‘小五’, ‘小六’, ‘小七’]
user3= [‘00000’, ‘阿二’, ‘阿三’, [1, ‘abcdefg’, 11111111111, 4, 5], ‘阿四’, ‘小五’, ‘小六’, ‘小七’]

#user3修改了列表中的列表,但user里并没有改变,因为使用deepcopy是完全copy整个list

1.12给列表前加标号

a=['huqiang','desperado','jack']
for a,i in enumerate(a):
print(a,i)
运行结果:

0 huqiang
1 desperado
2 jack

默认enumerate是从0开始显示,可以指从编号几开始

a=['huqiang','desperado','jack']
for a,i in enumerate(a,1): #加一个逗号及要初始显示的编号
print(a,i)
运行结果:

1 huqiang
2 desperado
3 jack

#split字符转为列表
a='a+b+c+d'
print(a.split('+'))#tuple列表转为元组
name=['lisi','46']
print(tuple(name))
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,076
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,400
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,812
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,894