00102 python列表操作总结

  • 简单操作
#创建列表
sample=[1,2,3,4,5,6] 

#得到列表中第一个值
print sample[0]      
print sample[-1] #得到列表中最后一个值

#删除第一个值,下同
del sample[0] 
del sample[-1]

#列表切片,切取索引从a到b-1的元素
sample[a:b] 
sample[a:] #列表切片,切取索引从a到结束的元素
sample[:b] #列表切片,切取索引从0到b-1的元素
variable_name=sample[:] #列表复制,切取所有并赋值给一个变量

#替换列表中的值,详见下文
sample[0:0]=[7]


总结:
     sample[a:b]可以用于替换,将索引号为a~b-1的元素,替换为等号之后的[]内的值,可以把原来的许多个替换成一个,也可以把原来的一个替换成许多个,
     此外,当b=a时,[a:b]在原来的列表里找不到对应的元素,也就是一个都不去掉,只新增,所以就变成了插入元素,[a:a]和[a:]没有区别。

#输出列表长度
print(len(sample))

#输出排序后的列表,且不影响原有的列表顺序
print(sorted(sample))

print "below is the new list",sample

#遍历
for element in sample:
    print (element)

#列表倒置
list_name[::-1] 

#此外,对于纯数字的列表,可以进行简单的统计计算
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45


  • 列表的方法
    • 新增元素
      • list_name.append(obj) #在列表末尾添加新的元素
      • list_name.insert(a,obj) #在索引为a的地方插入元素obj(a之后的元素后移一位)
    • 删除元素
      • list_name.pop() #不需要参数,切掉列表末尾的元素
           #注意,pop和del的区别在于,pop是列表的一个方法,它的运算结果可以作为一个值赋给一个变量,因此,pop切掉的值还可以赋给变量继续引用,如下例:
      • list_name.remove(obj) #移除,与del的区别是不指定位置,而是指定元素的值——如果有重复值,就删除第一个(要全删了可以循环remove直到list_name.remove(obj)的返回值为空)
          #小难点:怎么全部删掉?
          #4-10行的语法看似没问题,但结果却错了,这是因为随着循环的执行,列表越来越短了,遍历次数就会下降,导致remove的次数下降,所以需要结合count函数来做while循环   

    • list_name.sort() #永久性排序,有两个参数,会直接改变原有列表顺序
      • key:排序关键字 key=int,key=len, key=lambda...
      • reverse:倒序(reverse=True)


  • 列表解析:简化列表的创建——将for循环和创建新元素的代码合并成一行,并自动附加新元素
          解析语法: list_name=[ 算式 for value in range()]

  • map函数:用列表给一个函数批量传入参数
map (func_name, arglist1,arglist2,....)——依次将arglist中的元素传递给第一个参数给出的函数,运行结果取决与函数return的是什么
    • func_name:函数名,后面不用加括号
    • arglist1:参数列表1
    • arglist2:参数列表2
注意,map本身是不返回任何值的,它只是一个调用函数的命令


  • 查找列表:返回元素位置 list.index(value)
  • 元素计数:list.count(value)

  • 列表过滤:filter(function, list)——对list中每一个元素,执行函数function,返回true时保留该元素,返回false时将该元素从列表中删除(所以这个函数的精髓在于根据我们的需要构建一个过滤函数function,这个函数只能返回true or flase。
当function为none时,默认为indentity函数
identity(n)函数是返回一个n维的单位矩阵的意思,所以只有当n为空值,0,或者不是数字的时候会返回错误值false
因此,filter(None,list)可以用来过滤掉空值,0,不是数字的元素,尤其是过滤0和空值,在很多实际问题中都很有用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值