码迷,mamicode.com
首页 > 其他好文 > 详细

(10)列表操作

时间:2016-02-18 13:44:32      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:


# 创建一个列表
    只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
    list1 = [‘physics‘, ‘chemistry‘, 1997, 2000];
    list2 = [1, 2, 3, 4, 5 ];
    list3 = ["a", "b", "c", "d"];
   
# 拷贝一个列表
    x = [7,5,3]
    y = x[:]
    这样y才会产生副本,不能用y=x,这样x,y 指向同一个列表,改一个地方,最终列表什
    发生改变

# 访问列表中的值
    使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
    #!/usr/bin/python

    list1 = [‘physics‘, ‘chemistry‘, 1997, 2000];
    list2 = [1, 2, 3, 4, 5, 6, 7 ];
    print "list1[0]: ", list1[0]
    print "list2[1:5]: ", list2[1:5]

    以上实例输出结果:
    list1[0]:  physics
    list2[1:5]:  [2, 3, 4, 5]

# 更新列表
    你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:
    #!/usr/bin/python
    list = [‘physics‘, ‘chemistry‘, 1997, 2000];
    print "Value available at index 2 : "
    print list[2];
    list[2] = 2001;
    print "New value available at index 2 : "
    print list[2];
    以上实例输出结果:
    Value available at index 2 :
    1997
    New value available at index 2 :
    2001
   
    append()追加单个元素到list尾部,若是一个列表,也当成一个整体加入
    extend()将列表中每一个元素分别加到尾部
    若只是单个元素 append 和 extend 没有区别
    ids = [1,2,3]
    ids2=[3,4,5]
    ids.append(ids2)
    print ids 结果:[1, 2, 3, [3, 4, 5]]
    ----
    ids = [1,2,3]
    ids2=[3,4,5]
    ids.extend(ids2)
    print ids 结果:[1, 2, 3, 3, 4, 5]
   
    insert() 将一个元素插入到列表中,但其参数有两个(如insert(1,”g”))
   
    + 加号,将两个list相加,会返回到一个新的list对象,前面三种方法不产生
    新的副本,若对象大时尽量不用 +

# 删除列表元素
    可以使用 del 语句来删除列表的的元素,如下实例:
    #!/usr/bin/python
    list1 = [‘physics‘, ‘chemistry‘, 1997, 2000];
    print list1;
    del list1[2];
    print "After deleting value at index 2 : "
    print list1;

    以上实例输出结果:
    [‘physics‘, ‘chemistry‘, 1997, 2000]
    After deleting value at index 2 :
    [‘physics‘, ‘chemistry‘, 2000]

# Python列表脚本操作符
    列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
    如下所示:
    Python 表达式    结果    描述
    len([1, 2, 3])    3    长度
    [1, 2, 3] + [4, 5, 6]    [1, 2, 3, 4, 5, 6]    组合
    [‘Hi!‘] * 4    [‘Hi!‘, ‘Hi!‘, ‘Hi!‘, ‘Hi!‘]    重复
    3 in [1, 2, 3]    True    元素是否存在于列表中
    for x in [1, 2, 3]: print x,    1 2 3    迭代

# Python列表截取
    Python的列表截取与字符串操作类型,如下所示:
    复制代码 代码如下:
    L = [‘spam‘, ‘Spam‘, ‘SPAM!‘]

    操作:
    Python 表达式    结果    描述
    L[2]    ‘SPAM!‘    读取列表中第三个元素
    L[-2]    ‘Spam‘    读取列表中倒数第二个元素
    L[1:]    [‘Spam‘, ‘SPAM!‘]    从第二个元素开始截取列表

# Python列表操作的函数和方法
    列表操作包含以下函数:
    cmp(list1, list2):比较两个列表的元素
    len(list):列表元素个数
    max(list):返回列表元素最大值
    min(list):返回列表元素最小值
    list(seq):将元组转换为列表
    sorted(list) 返回排好序的列表副本,原列表不变
   
# 列表操作包含以下方法:
    list.append(obj):在列表末尾添加新的对象
    list.count(obj):统计某个元素在列表中出现的次数
    list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    list.index(obj):从列表中找出某个值第一个匹配项的索引位置
    list.insert(index, obj):将对象插入列表
    list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    list.remove(obj):移除列表中某个值的第一个匹配项
    list.reverse():反向列表中元素
    list.sort([func]):对原列表进行排序
   
# 解析(震撼功能)
    求1到10,各数的平方数
    squares = [x**2 for x in range(1,10)]
   
    求1到100,能被3整除的数
    aliquot = [n for n in range(1,100) if n%3==0]
   
    去字符左右有空格
    mybag = [‘ glass‘,‘apple‘,‘green leaf ‘]
    mybag = [one.strip() for one in mybag]
   
# 列表排序
    简单升序排序
        x = [4, 6, 2, 1, 7, 9]
        x.sort()
        print x # [1, 2, 4, 6, 7, 9]
        说明 sort()改变本身列表
    --------
    产生副本排序
        x =[4, 6, 2, 1, 7, 9]
        y = x[ : ] #产生副本
        y.sort()
        print y #[1, 2, 4, 6, 7, 9]
        print x #[4, 6, 2, 1, 7, 9]
        方法二:
        x =[4, 6, 2, 1, 7, 9]
        y = sorted(x) # sorted() 总是返回一个列表副本
        print y #[1, 2, 4, 6, 7, 9]
        print x #[4, 6, 2, 1, 7, 9]
    ---------
    自定义排序
        def comp(x, y):
        if x < y:
        return 1
        elif x > y:
        return -1
        else:
        return 0

        nums = [3, 2, 8 ,0 , 1]
        nums.sort(comp)
        print nums # 降序排序[8, 3, 2, 1, 0]
        nums.sort(cmp) # 调用内建函数cmp ,升序排序
        print nums # 降序排序[0, 1, 2, 3, 8]   
    -----------
    可选参数
    sort方法还有两个可选参数:key和reverse
        x = [‘mmm‘, ‘mm‘, ‘mm‘, ‘m‘ ]
        x.sort(key = len) # 按长度升序
        print x # [‘m‘, ‘mm‘, ‘mm‘, ‘mmm‘]
       
        y = [3, 2, 8 ,0 , 1]
        y.sort(reverse = True) #降序
        print y #[8, 3, 2, 1, 0]
       
   
   
# 去重复项
    # -*- coding: utf-8 -*-

    ids = [1,2,3,3,4,2,3,4,5,6,1]
    news_ids = []
    for id in ids:
        if id not in news_ids:
            news_ids.append(id)
    print news_ids

# 判断为空
    if mylist:
      # Do something with my list
    else:
      # The list is empty
     
# 遍历(采用了enumerate内置函数)
    for i, element in enumerate(mylist):
      # Do something with i and element
      pass
     同时得到key
    若不要key,如下:
    for element in mylist:
      #code

#     

(10)列表操作

标签:

原文地址:http://www.cnblogs.com/toby2chen/p/5197761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!