python学习---列表

列表的特点:

1、**有序**的集合
2、通过**偏移**来索引,从而读取数据(偏移可以为负,即从右到左,最右为-1)
3、支持嵌套
4、**可变**的类型

1、切片:

a = [1,2,3,4,5,6,7]
正向索引(a[1:5:2]) 
反向索引 (a[-1:-5:2])从有到左索引
默认索引(a[0,])默认到最后一个数,间隔为1

2、添加操作:

1、"+"(生成一个新的列表)
2、extend 接受参数并将该**参数的每个元素**都添加到原有的列表中,修改列表而不是新建列表
3、append :添加**任意对象**到列表的末端(嵌套)
4、insert: 插入**任意对象**到列表中,可以控制插入位置。(嵌套)

3、 修改:

修改列表本身只需要直接赋值操作就行。
A = [1,2,3]
A[0]=’haha’
注意:a =[1,2,3]
     b=a
     a[0]=="lpc"
     此时print b  ---->[lpc,2,3]
     因为:变量即是引用,引用对象,指向对象的地址。

4 、删除操作:

del :我们通过索引删除指定位置的元素。del a[1]
注意:**del a 删除列表a的引用**
     a =[1,2,3]
     b=a
     del a
     print b ----> [1,2,3]
     **del a[:]清空列表对象里的元素**
     a =[1,2,3]
     b=a
     del a[:]
     print b ----> []
remove:移除列表中指定值的**第一个匹配值**。如果没找到的话,**会抛异常**。
pop:返回**最后一个元素**,并从list中删除它。

5、成员关系:

In \not in我们可以判断一个元素是否在列表里。
返回一个bool类型,元素在列表里返回True,否则返回Fasle.

6 、列表推导式:

1、[expr for iter_var in iterable]
首先迭代iterable(列表)里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,**再在表达式expr中应用该iter_var的内容**,最后用表达式的计算值生成一个列表。
以上表达式等同于:
    for inter_var in iterable:
           print expr
eg:我们要生成一个包含1到10的列表
[x for x in range(1,11)]
输出 :a = ['lpc',[cpl]]
      "name:lpc,name:cpl"
      ['name: %s ' % n for n in a]
2、[expr for iter_var in iterable if cond_expr]
加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
eg;要生成包含1到10的所有奇数列表。
[x for x in range(1,11) if x % 2 == 1]

3、xrange和range
    xrange(start,end,step),它生成了一个xrange对象,而range生成一个列表。
    **xrange用法:**
      1、当需要操作一个大数据时,而且为了节约内存,使用xrange
      2、只需要操作部分数据时而不是不是返回全部元素来完成操作。
 4、应用:
 (1)取出1-100的所有值平方
 [x*x for x in xrange(1,101)]
 (2)生成的东西不是数字
 生成字符串:['the %s' % d for d in xrange(10)]
 生成元组:[(x,y) for x in range(2) for y in range(2)]
 生成字典:dict([(x,y) for x in range(2) for y in range(2)])

7、 排序翻转:

1、sort
    L.sort(cmp = none, key = none ,reverse=False)
    a = [33,11,22,44]
    这个方式直接修改原列表。他的返回值为none,所以b = a.sort()
print b 输出的内容是None
key:通过一个例子来看:
    a=['123','478','456']要想让列表a按照字符串中的数字大小排列
    a.sort(key=int)
reverse:反转,可以在sort方法内设置reverse = Ture 来设置列表反转
cmp:比较,在python3中已被淘汰。
附:另一个方法sorted()用法和l.sort类似,需要在方法内指明列表,另外该方法不改变原有的列表,所以需要进行重新赋值。
2、多级排序:
    a = [(1,2,3),(3,4,5),(4,3,2)]
    比如:以第二位和第三位进行排序:
        import operator
        a.sort(key = operator.itemgetter(1,2))
3、针对某一游标排序
    a = ['lpc':23,'cpl':25,'plc':20]
    a.sort(k= lambda x:x[1])    按照每个单元里的第1个进行排序
4、reserve
    list的reverse函数:反转一个list, 他的返回值为none.
    比如上面的列表a
        b = a. reverse()
        print b 输出的内容是None

8、list内置方法

a = “lpc”
list(a)
print a -------> ['l','p','c']
1、返回一个列表,**参数是可以迭代的对象**(整型的数字就不可以)
2、里面的内容还是保持了传入可迭代对象的元素和顺序
3、如果参数为空,则返回一个空的列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值