python.列表全方位解读

列表:
以下从列表创建,列表四大护法(增删改查),列表处理方法等,全方位解读列表特征与使用。

1,创建列表
a,列表生成器range()
它是一个可迭代対象,能快速生成一个序列值,必须做为其它函数的参数才能实现目的,常与for合作,单独使用会变成列表生成器,能快速生成连续数值列表,注意,在python 3.0以下版本,会直接生成列表,但3.0以上版便不再直接生成列表,它先产生一个生成器对象(range()),实质也是一个列表,你可以直接调用,当你调用时便成列表,这样不占内存,更高效。
语法:
range(start,stop,step)
start开始值,默认从0开始,
stop结束值,默认不被生成,当只有一个参数时,就是赋给stop的,其它俩为默认值。
step步数,默认为1,三个值的类型都是int类。
range(10) #快速生成从0到9的列表
dict.fromkeys(range(10),0) #快速生成十个键名从0到9,值都为0的字典
a = iter(range(10)) #快速生成一个迭代器
next(a) →0 #调用迭代器
next(a) →1

b,列表推倒式
列表推倒式更灵活,更高效,还能在创建列表时对数据处理。
语法:
list = [expresion1 for expresion2 if expresion3]
expresion1: 生成表达式,可以是一个值或值表达式,它是后面两表达式共同作用的结果。
expresion2: for表达式,连续创造生成值的循环条件,就是一条for循环。
expresion3: if条件表达式,可选的附加条件,对每个生成数值的筛选或限定。
nums = [num*2 for num in range(5)]
→[0,1,4,6,8]
nums = [num for num in range(10) if num/2 == 0 continum]
→[1,3,5,7,9]

2,列表值操作:增删改查
a,增
append(val)
对列表末尾增加指定值,修改原列表,注,值婖在列表结尾。
a [1,2,3]
a.append(4) →[1,2,3,4]
b =[4,5,6]
a.append(b) →[1,2,3,[4,5,6]]

insert(index,val)
对原列表指定索引前增加指定值,修改原列表,注,值添加在指定索引前。
a = [1,2,3,4,5]
a.insert(3,7) →[1,2,3,7,4,5]

extend(iterator)
扩展列表,把一个可迭代对象追加到指定列表中,追加的可迭代对象放在原列表结尾。
a = [1,3,2]
b =[‘a’,‘b’,‘c’]
c =‘abcd’
a.extend(b) →[1,3,2,‘a’,‘b’,‘c’]
a.extend© →[1,2,3,‘a’,‘b’,‘c’,‘d’]

重复列表,把列表所有的值当成整体后再重复指定次数,乘号后面只能是一个值。
a = [1,2,3]
a*3 →[1,2,3,1,2,3,1,2,3]

与extend类似,但extend接受一个可迭代对象,而+号后只能接受一个列表,它对+两边的列表不作修改,返回新列表。
a = [‘a’,‘b’,‘c’]
b = [1,2,3]
a+b →[‘a’,‘b’,‘c’,1,2,3]

b,删
del
del是个语句,它即不是某个对象属性,也不是方法,它和return,break,continum,with等一样,都有固定作用。它的作用就是删除,小到一个值,大到一个类,可以删除任何东西!没有返回值,修改原列表。
a = [‘a’,‘b’,‘c’]
del a[1] →[‘a’,‘c’]
del a →none

pop(index)
删除列表中指定索引的值,且返回被删除的值,默认索引为列表末尾值。
a = [‘a’,‘b’,‘c’,‘d’,‘e’]
a.pop() → ‘e’
a →[‘a’,‘b’,‘c’,‘d’]
a.pop(2) →’c’
a →[‘a’,‘b’,‘d’]

remove(val)
删除列表中指定元素,从左向右比对值,若原列表中有相同值,只删除左边一个,且不返回删除值,pop删除并返回删除值。
a = [‘a’,‘b’,‘c’]
a.remove(‘b’) →[‘a’,‘c’]

3,查
list[index]
查看列表的指定索引值,此方法只能查看一个值。
a = [‘a’,‘b’,‘c’]
a[1] →’b’

index(val[,start,stop])
查询指定值的索引号,默认从左向右比对,找到后就结束,当想找相同值的后一个值时,可以设置开始与结束区间值。
a = [‘a’,‘b’,‘c’,‘a’,‘b’,‘c’]
a.index(‘b’) →1
a.index(‘b’,2) →4 从2号开始找

count(val)
次数查找,查找指定值在列表中出现的次数。注,返回值是次数。
a = [‘a’,‘b’,‘c’,‘a’,‘b’,‘c’]
a.count(‘a’) →2

切片
切片是获取列表多个数值的方法,列表切片与字符串切片用法相同,参照字符串切片方法。

4,改
list[index] = val
改变列表中的值只有这种方法,首先得知道要改值的索引号,重新赋值就好。
略。。。。

5,列表遍列
列表遍历常用for循环,遍历的目的就是为了获得元素的值或索引号,
下面是纯for循环同时获取列表元素值和索引号最简洁方法:
a = [‘a’,‘b’,‘c’,‘a’,‘b’,‘c’]
b =range(len(a))
for i in b:
print(i,a[i])
以上方法用枚举更省事。
有关枚举详细用法,请点击

6,列表判定
in和not in :
in或not in是一条语句,判定一个值是否存在于某个集合体内,返回布尔值。
a = [1,2,3,4,5]
5 in a →True
5 not in a →False

7,比较列表

,<,==
可以对两列表大小做比较,它会同时比较两列表相同索引对应值,一旦出现False值便停止后面的比较,返回布尔值。

8,列表排序
sorted()
内建排序函数这里详解过

sort(key,reverse)
sort()是一个列表专用方法,用c语言编写,效率极高!只能用于列表,它本身没有返回值,修改的是原列表。而sorted()是一个内建函数,可用于所有可迭代对象,它不修改原列表,返回一个排序列表。在功能和用法是两者完全一样。

9,列表乱序
random.shuffle(list)把列表传进去,它会打乱原列表次序,它本身没有返回值,修改的是原列表。
a = [3,6,4,8,1,7,2]
random.shuffle(a)
a →[6,8,1,4,3,7,2]

10,反转列表
reverse()
专门用于反转一个列表的前后次序,它修改原列表,没有返回值。
a = [1,2,3,4,5]
a.reverse()
a →[5,4,3,2,1]

[::-1]
切片反转,专门用于列表次序,但它不修改原列表,返回一个排序列表。
b=a[::-1]
b →[5,4,3,2,1]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值