zoukankan      html  css  js  c++  java
  • 第四节课:列表

    一、特点:

    1. 有序集合
    2. 通过偏移量索引
    2. 支持嵌套
    3. 是可变的类型

    a = [1,2, 3,4,5]
    a[-1]
    a = [[1,2],["a","b"]]
    a[0] = [3,4]

    1. 切片
    a = [1,2,3,4,5,6,7]

    正向切片
    反向索引
    默认索引

    # 注意步骤长前面仍是冒号

    a[0:4:1] # 正向
    a[-1:-4:-1] # 反向
    a[1::2] # 默认值为总长度
    a[0::2]

    二、添加操作
    1. + 生成一个新的列表
    2. Extend 接受参数并将该参数的每个元素添加到原有的列表中,原地修改列表,而不是新建列表
    3. Append:添加任意对象到列表的末端
    4. Insert: 插入任意对象到列表中,可以控制位置

    a = [1,2,3]
    b = [4,5,6]
    a + b
    a.extend(b)

    三、列表的修改操作
    修改列表本身只需要直接赋值操作即可
    a = [1,2,3]
    a[0] = 'haha'

    四、删除操作
    1. Del: 我们通过索引删除指定位置的元素
    2. Remove:移除列表中指定值的第一个匹配值. 如果没有,则返回
    3. Pop: 返回最后一个元素,并从列表中删除

    a = [1,2,3,4,5,4]
    del a[0]
    a.del(a[0]) 错误

    a.remove(4)
    a.remove(6) 异常

    a.pop()

    五、成员关系
    in not in 可以判断一个元素是否在列表里面
    返回一个bool类型, 元素在列表里返回True, 否则返回False

    六、列表推导式
    [expr for iter_var in iterable]
    首先迭代 iterable里面所有内容, 每一次迭代, 都把iterable 里相应内容放到iter_var中,表达式中应用iter_var生成一个列表.

    [x+2 for x in range(1,11)]
    range(1,11)


    [expr for iter_var in iterable if cond_expr]
    加入了判断语句,只有满足条件才把iterable中内容提取赋予 iter_var, 然后表达式中应用生成一个列表.

    range(1,11,2)
    [x for x in range(1,11) if x % 2 == 1]


    七、排序翻转:sort reverse

    这个方式直接修改原里列表. 他的返回值为none.

    a = [11,2,34,128]
    b = a.sort()
    print a, b

    c a.reverse()
    print a, c

  • 相关阅读:
    HDU 4024 Dwarven Sniper’s hunting(数学公式 或者是二分)
    二分图最大匹配总结
    HDU 4022 Bombing (STL应用)
    HDU 1847 Good Luck in CET4 Everybody!(组合博弈)
    HDU 1556 Color the ball(树状数组)
    HDU 4023 Game(博弈)
    HDU 1406 完数(水题)
    HDU 4021 24 Puzzle
    Oracle 多表查询优化
    【编程之美】字符串移位包含的问题(续)
  • 原文地址:https://www.cnblogs.com/huiming/p/5510565.html
Copyright © 2011-2022 走看看