• 列表


    列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作.

    定义列表

     1 name = ['yjb','muyi','yang'] 

    通过下标访问列表中的元素,下标从0开始计数.

    1 print(name[0])      #yjb
    2 print(name[1])      #muyi
    3 print(name[2])      #yang

    切片:取多个元素  

     1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
     2 >>> names[1:4]  #取下标1至下标4之间的数字,包括1,不包括4
     3 ['Tenglan', 'Eric', 'Rain']
     4 >>> names[1:-1] #取下标1至-1的值,不包括-1
     5 ['Tenglan', 'Eric', 'Rain', 'Tom']
     6 >>> names[0:3] 
     7 ['Alex', 'Tenglan', 'Eric']
     8 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
     9 ['Alex', 'Tenglan', 'Eric']
    10 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
    11 ['Rain', 'Tom', 'Amy'] 
    12 >>> names[3:-1] #这样-1就不会被包含了
    13 ['Rain', 'Tom']
    14 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
    15 ['Alex', 'Eric', 'Tom'] 
    16 >>> names[::2] #和上句效果一样
    17 ['Alex', 'Eric', 'Tom']

    追加

    1 >>> names
    2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
    3 >>> names.append("我是新来的")
    4 >>> names
    5 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

    插入

    1 >>> names
    2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
    3 >>> names.insert(2,"强行从Eric前面插入")
    4 >>> names
    5 ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
    6 
    7 >>> names.insert(5,"从eric后面插入试试新姿势")
    8 >>> names
    9 ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

    修改

     1 >>> del names[2] 
     2 >>> names
     3 ['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
     4 >>> del names[4]
     5 >>> names
     6 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
     7 >>> 
     8 >>> names.remove("Eric") #删除指定元素
     9 >>> names
    10 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']
    11 >>> names.pop() #删除列表最后一个值 
    12 '我是新来的'
    13 >>> names
    14 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']

    扩展

    1 >>> names
    2 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
    3 >>> b = [1,2,3]
    4 >>> names.extend(b)
    5 >>> names
    6 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

    拷贝

     注:如果列表中嵌套了列表,那在Copy时只是复制了内嵌列表的地址,但内容发生改变后,复制体也相应改变。

    如果需要完会复制,可以通过copy.deepcopy()来实现。

    1 >>> names
    2 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
    3 
    4 >>> name_copy = names.copy()
    5 >>> name_copy
    6 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

    统计

    1 >>> names
    2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
    3 >>> names.count("Amy")
    4 2

    长度

    1 name = ['yjb','muyi','yang']
    2 print(len(name))
    3 3

    排序&翻转

     1 >>> names
     2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
     3 >>> names.sort() #排序
     4 Traceback (most recent call last):
     5   File "<stdin>", line 1, in <module>
     6 TypeError: unorderable types: int() < str()   #3.0里不同数据类型不能放在一起排序了,擦
     7 >>> names[-3] = '1'
     8 >>> names[-2] = '2'
     9 >>> names[-1] = '3'
    10 >>> names
    11 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
    12 >>> names.sort()
    13 >>> names
    14 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
    15 
    16 >>> names.reverse() #反转
    17 >>> names
    18 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']

    获取下标

    1 >>> names
    2 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
    3 >>> names.index("Amy")
    4 2 #只返回找到的第一个下标

    列表所具有的功能,如下图

    序号方法
    1 list.append(obj)
    在列表末尾添加新的对象
    2 list.count(obj)
    统计某个元素在列表中出现的次数
    3 list.extend(seq)
    在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    4 list.index(obj)
    从列表中找出某个值第一个匹配项的索引位置
    5 list.insert(index, obj)
    将对象插入列表
    6 list.pop(obj=list[-1])
    移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    7 list.remove(obj)
    移除列表中某个值的第一个匹配项
    8 list.reverse()
    反向列表中元素
    9 list.sort([func])
    对原列表进行排序
    10 list.clear()
    清空列表
    11 list.copy()
    复制列表
  • 相关阅读:
    Object-C 声明属性为什么用下划线,代码规范和编程风格
    iOS API 概述
    iOS 彻底学会使用delegate
    iOS NSNotification的使用
    L1_6 连续因子
    天梯 L1_46整除光棍
    51-Nod 1279
    UVA
    hdu 1078
    Poj 1088 滑雪 递归实现
  • 原文地址:https://www.cnblogs.com/muyiyang/p/6082645.html
Copyright © 2020-2023  润新知