python定义一个列表、逗号改为感叹号_python学习之列表语法

1.1 取值

>>> name=["zhangsan","lisi","wangwu","zhaoliu",190,33]

>>> name[0]

'zhangsan' #取第一个元素

>>> name[1]

'lisi'

>>> name[-1]

33 #取最后一个元素

>>> name[-2]

190

1.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))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值