• 《转》python学习(7) -列表


    转自 http://www.cnblogs.com/BeginMan/p/3153842.html

    一、序列类型操作符

    1、切片[]和[:]

    2、成员关系操作符(in ,not in )

       1:  s1 = [1,2,3,4,5,6,7]
       2:  s2 = [2,3,6]
       3:  s3 = []
       4:  for obj in s1:
       5:       if obj not in s2:
       6:           s3.append(obj)
       7:   
       8:  print s3
       9:  s4 = set(s1)-set(s2)
      10:  print s4    #set([1, 4, 5, 7])

    3、连接操作符 (+)

    +:   两边连接同类型的,并且连接之后创建一个新的对象,不能将一个元素添加进去,只能是一个list对象+list对象。 

       1:  print s1+s2 #[1, 2, 3, 4, 5, 6, 7, 2, 3, 6]
       1:  注意:
       2:  li=[1,2,3]
       3:  li.extend('good'),
       4:  print li  则输出:[1,2,3,'g','o''o','d']
       5:  如果我们换成li.append('good')之后,则输出[1,2,3,'good'].
       6:  这是因为extend()添加整个列表对象,append()添加元素

    注意:

       1:  >>> li = [1,2,3]
       2:  >>> li+'new item'
       3:   
       4:  Traceback (most recent call last):
       5:    File "<pyshell#15>", line 1, in <module>
       6:      li+'new item'
       7:  TypeError: can only concatenate list (not "str") to list
       8:  >>> li.extend('item')
       9:  >>> li
      10:  [1, 2, 3, 'i', 't', 'e', 'm']
      11:  >>> li.append('item')
      12:  >>> li
      13:  [1, 2, 3, 'i', 't', 'e', 'm', 'item']
      14:  >>> 

    4、重复操作符(*)

    二、列表类型内建函数

    1、list.append(obj):向列表中添加一个对象obj

       1:  lis = [1,2,3,4,'a','b','c','a','aaa','e','great']
       2:  lis.append('object')
       3:  print lis   #[1, 2, 3, 4, 'a', 'b', 'c', 'a', 'aaa', 'e', 'great', 'object']

    2、list.count(obj):返回一个对象obj在列表中出现的次数

       1:  #print lis.count('a')  #2

    3、list.extend(seq):把序列seq的内容添加到列表中

       1:  lis.extend('seq')   #[1, 2, 3, 4, 'a', 'b', 'c', 'a', 'aaa', 'e', 'great', 's', 'e', 'q']

    4、list.index(obj,i=0,j=len(list)):返回list[k]==obj的k值,并且k的范围在 i<=k<j,否则引发ValueError异常

       1:  #print lis.index('aaa')  #8

    5、list.insert(index,obj):在索引量为index的位置插入对象obj(必须两个参数)

       1:  lis.insert(1,'Z')
       2:  print lis   #[1, 'Z', 2, 3, 4, 'a', 'b', 'c', 'a', 'aaa', 'e', 'great']

    6、list.pop(index = -1):删除并返回指定位置的对象,默认是最后一个

       1:  print lis.pop()     #great
       2:  print lis.pop(1)    #2

    7、list.remove(obj):从列表中删除对象obj

       1:  lis = [1,2,3,4,'a','b','c','a','aaa','e','great']
       2:  #lis.remove('value')
       3:  #如果不存在则发生异常:
       4:  #Traceback (most recent call last):
       5:  #  File "E:projectPython_testsrc	estdic.py", line 8, in <module>
       6:  #    lis.remove('value')
       7:  #ValueError: list.remove(x): x not in list
       8:  lis.remove('a')
       9:  #如果有多个相同的值,则只删除最前面的一个:[1, 2, 3, 4, 'b', 'c', 'a', 'aaa', 'e', 'great']
      10:  lis.remove('great') #[1, 2, 3, 4, 'b', 'c', 'a', 'aaa', 'e']
      11:   
      12:  print lis

    8、list.reverse():原地翻转列表

       1:  lis = [1,2,3,4,'a','b','c','a','aaa','e','great']
       2:  lis.reverse()
       3:  print lis   #['great', 'e', 'aaa', 'a', 'c', 'b', 'a', 4, 3, 2, 1]

    9、list.sort()

       1:  lis = [1,2,3,4,'a','b','c','a','aaa','e','great']
       2:  #lis.sort(cmp=None, key=None, reverse=False)
       3:  lis.sort(cmp=None, key=None, reverse=True)
       4:  print lis   #['great', 'e', 'c', 'b', 'aaa', 'a', 'a', 4, 3, 2, 1]
     

    注意:那些可以改变对象值的可变对象的方法是没有返回值的

    如:

       1:  lis = [1,2,3,4,'a','b','c','a','aaa','e','great']
       2:  print lis.extend('MM')  #None
       3:  result = lis.extend('MM')
       4:  print result    #None

    这些操作会在列表中原地执行操作,也就是说现有的列表内容会被改变,但是没有返回值。与之相反,字符串方法有返回值:

       1:  print 'abc'.upper() #ABC

    其中与序列有关的内建函数,则可有返回值:

       1:  print reversed(lis)     #<listreverseiterator object at 0x0128DAD0>
       2:  print sorted(lis)       #[1, 2, 3, 4, 'M', 'M', 'M', 'M', 'a', 'a', 'aaa', 'b', 'c', 'e', 'great']
     

    三、序列类型函数

    1、len()
    2、max() min()
    3、sorted()、reversed():注意字符串排序时使用字典序,而不是字母序
    4、enumerate()、zip()
    见:http://www.cnblogs.com/BeginMan/archive/2013/03/14/2959447.html
    5、sum()
    6、list()、tuple()
  • 相关阅读:
    es6+最佳入门实践(11)
    es6+最佳入门实践(10)
    es6+最佳入门实践(9)
    es6+最佳入门实践(8)
    es6+最佳入门实践(7)
    cookie、session、sessionid 与jsessionid之间的关系
    百面数据挖掘工程师-题库(1)
    远程桌面最新漏洞CVE-2019-0708 POC利用复现
    jQuery基础
    JavaScript 基础
  • 原文地址:https://www.cnblogs.com/nolonely/p/6623533.html
Copyright © 2020-2023  润新知