• python 列表、元组


    列表

    List(列表) 是 Python 中使用最频繁的数据类型。

    列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

    列表用 [ ] 标识,是 python 最通用的复合数据类型。

    列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

    例:

    list 常用方法:

    append list末尾追加一个元素

    index 列出符合条件的list下标

    insert 插入list一个元素

    pop 末尾删除一个list元素

    remove 删除list一个元素,如果有多个元素需要多次删除

    sort   list排序

    reverse list反序

     

    切片

    切片操作符在python中的原型是:

    [start:stop:step] 即:[开始索引:结束索引:步长值]

    开始索引:同其它语言一样,从0开始,序列从左向右方向中,第一个值的索引为0,最后一个为-1;

    结束索引:切片操作符将取到该索引为止,不包含该索引的值;

    步长值:默认是一个接一个切取,如果为2,则表示隔一取一的操作;步长值为正时,表示从左向右取;如果为负,则表示从右向左取;步长值不能为0。

    元组

    元组是另一个数据类型,类似于List(列表)。

    元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

    单个tuple时,元素后面需加, ,否则python解析器不会识别tuple类型

     

    tuple 的方法:

    count 统计某个元素的数量

    iindex 返回某个元素的下标

    字典 

    字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

    两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    字典的每个键值对(key-value)用:分割,每个对之间用, 分割;字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

    字典的赋值方法有三种:

     字典常用的方法:

    get   返回指定键的值,如果值不在字典中返回默认值None。

    setdefault 

    如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。

    习题:

    现有列表 list1 = ['XXXX', 'b', 3, 'c', '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX'] list2 = ['e', 'f', 'g']

    要求对其做以下操作:

    1. 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3

    list3 = list1[1:-1]

    print list3

    2. 对list3 做一下几部操作

    1)删除特殊符号

    del list3[4]

    print list3

    2)统计3 在list3中出现的次数

    print list3.count(3)

    3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)

    # ['b', 3, 'c', 3, 'a', 3, '3', 3, 'aa', '3']

    list3 = list3[0:5:2]

    4)对list3排序

    list3.sort()

    5)在末尾追加'd',并把list2追加到list3

    list3.append('d')

    3. 现有两个变量 a = ('h',) b = ('h')

    1)将a和b分别追加到上一题的list3中,观察有什么区别

    list3.append(a)

    list3.append(b)

    print list3

    2)将1生成的list3转换成元组(扩展:自己搜索方法)

    tuple(list3)

    3)打印出只有一个元素'h'的元组,在2中生成的元组中的索引

    print tuple(list3).index(a)

    字典的练习题:

    练习: 1. 现有一个字典dict1 保存的是小写字母a-z对应的ASCII码 dict1 = {'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 96, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}

    1) 将该字典按照ASCII码的值排序

    import string

     

    dict1 = {'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 96, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}

     

    print sorted(dict1.iteritems(), key=lambda d:d[1], reverse=False)

    2) 有一个字母的ASCII错了,修改为正确的值,并重新排序

    dict1['o'] = 111

    print sorted(dict1.iteritems(), key=lambda d:d[1], reverse=False)

    2. 用最简洁的代码,自己生成一个大写字母 A-Z 及其对应的ASCII码值的字典dict2(使用dict,zip,range方法)

    dict2 = dict(zip(string.uppercase,range(65,92)))

    print dict2

    3. 将dict2与第一题排序后的dict1合并成一个dict3

    dict3 = dict(dict1, **dict2)

     

     

  • 相关阅读:
    (五)消费Dubbo服务
    (四)Dubbo Admin管理控制台
    (三)发布Dubbo服务
    (二)zookeeper安装
    (一)Dubbo简介
    解决tomcat 启动 一闪而过
    Redis的数据结构之哈希
    Redis的数据结构之字符串
    Jedis 连接池实例
    linux/centos定时任务cron
  • 原文地址:https://www.cnblogs.com/sunminy/p/7726561.html
Copyright © 2020-2023  润新知