zoukankan      html  css  js  c++  java
  • 列表,元祖,字典的详细概述

    list(列表):

    list是一种有序的集合,可以随时添加和删除其中的元素

    定义一个列表:

    classmates = ['Michael','Bob','Tracy']

    用len()函数可以获得列表元素的个数:

    In [3]: len(classmates)
    Out[3]: 3

    也可以用索引访问每一个位置的元素,记住索引是从0开始的,超出范围之后就会报错:

    In [5]: classmates[0]
    Out[5]: 'Michael'

    In [6]: classmates[1]
    Out[6]: 'Bob'

    In [7]: classmates[3]
    ---------------------------------------------------------------------------
    IndexError Traceback (most recent call last)
    <ipython-input-7-81a27e3ce05f> in <module>()
    ----> 1 classmates[3]

    IndexError: list index out of range

    列表的相关操作:

    <1>添加元素("增"append,extend,insert):

    为什么是三个呢,当然是有所不同的,ok  我们举例说明


    In [8]: names = [100,200,'300','ok']

    In [9]: names.append("400")

    In [10]: names
    Out[10]: [100, 200, '300', 'ok', '400']

    看到效果了吧,是的  append就是在列表的最后添加

    extend就是两个列表的合并

    In [13]: names2 = [500,600]

    In [14]: names.extend(names2)

    In [15]: names
    Out[15]: [100, 200, '300', 'ok', '400', 500, 600]

    Out[15]: [100, 200, '300', 'ok', '400', 500, 600]

    insert(index.object)  在指定位置index前插入元素object:

    In [16]: names.insert(0,"000")

    In [17]: names
    Out[17]: ['000', 100, 200, '300', 'ok', '400', 500, 600]

    <2>修改元素:  ("改" 指定索引修改)

    In [18]: names[2]=1000

    In [19]: names
    Out[19]: ['000', 100, 1000, '300', 'ok', '400', 500, 600]

    <3>查找元素 ("查"  in,not in,index,count)

    in和not in 一般做判断用

    查找元素是否存在

    in(存在),如果存在结果为Ture,否则为False

    not in(不存在)如果不存在结果为Ture,否则为False

    In [22]: 100 in names
    Out[22]: True

    In [23]: 100 not in names
    Out[23]: False

    index(查找索引所对应的元素):

    In [19]: names
    Out[19]: ['000', 100, 1000, '300', 'ok', '400', 500, 600]

    In [20]: names.index('ok')
    Out[20]: 4

    count 查找列表中元素的个数:

    In [21]: names.count('ok')
    Out[21]: 1

    <4>("删"del,pop,remove)

    del : 根据下标位删除,也可以删除所有变量

    In [24]: names
    Out[24]: ['000', 100, 1000, '300', 'ok', '400', 500, 600]

    In [25]: del names[2]

    In [26]: names
    Out[26]: ['000', 100, '300', 'ok', '400', 500, 600]

    pop: 默认只能删除列表的最后一个 并返回给你

    In [27]: names.pop()
    Out[27]: 600

    In [28]: names
    Out[28]: ['000', 100, '300', 'ok', '400', 500]

    remove : 删除指定的内容

    In [31]: names.remove('000')

    In [32]: names
    Out[32]: [100, '300', 'ok', '400', 500]

    <5>排序(sort,reverse)

    sort方法将list按照特定顺序重新排列,默认从小到大,接参数reverse=Ture 可从打的大小排序

    In [36]: num = [1,5,6,32,23,67]

    In [37]: num.sort()

    In [38]: num
    Out[38]: [1, 5, 6, 23, 32, 67]

    注:排序必须保证元素是同等类型,否则会报错.

    reverse方法就是将list逆置:

    In [42]: num = [1,5,6,32,23,67]

    In [43]: num.reverse()

    In [44]: num
    Out[44]: [67, 23, 32, 6, 5, 1]

    Tuple(元祖)

    元祖与列表类似,不同之处在于元祖的元素不能修改,元祖使用小括号,列表使用中括号

    元祖的各种操作访问和列表基本是一样的,

    下面举一个例子:


    In [46]: num = [1,5,6,32,23,67]

    In [47]: my_tuple = (100,200,num)

    In [48]: my_tuple
    Out[48]: (100, 200, [1, 5, 6, 32, 23, 67])

    In [49]: my_tuple[2][1]= 20

    In [50]: my_tuple
    Out[50]: (100, 200, [1, 20, 6, 32, 23, 67])

    大家可以仔细看看,从表面看呢 元祖是被修改了,其实不然,修改的只是list元素,而不是元祖.

    dict(字典):

    字典使用键-值(key-value)存储,具有及快的查找速度

    In [63]: my_dict = {"name":"laowang","age":25,"sex":"男"}

    In [64]: my_dict["name"]
    Out[64]: 'laowang'

    在访问一个字典的时候我们不可以用索引,用的是键,键在字典中是不可重复的

    In [67]: my_dict.get("name")
    Out[67]: 'laowang'

    In [68]: my_dict.get("addr")

    也可以用这种方法访问,这种访问一个不存在的键时,不会报错,返回的是一个None 而上面的方法是会报错的

    字典中的添加:

    In [69]: my_dict["addr"]="BJ"

    In [70]: my_dict
    Out[70]: {'addr': 'BJ', 'age': 25, 'name': 'laowang', 'sex': '男'}

    In [71]: my_dict["addr"]="SZ"

    In [72]: my_dict
    Out[72]: {'addr': 'SZ', 'age': 25, 'name': 'laowang', 'sex': '男'}

    可以使用以上方法添加,如果键不存在就是添加,如果已经存在就是修改 

    删除的话 使用del 就可以

    In [75]: del my_dict["addr"]

    In [76]: my_dict
    Out[76]: {'age': 25, 'name': 'laowang', 'sex': '男'} 

    字典中的函数:

    keys: 返回字典中所有的key的列表

    In [76]: my_dict
    Out[76]: {'age': 25, 'name': 'laowang', 'sex': '男'}

    In [77]: my_dict.keys()
    Out[77]: dict_keys(['name', 'age', 'sex'])

    values: 返回字典中所有的valuse的列表

    In [78]: my_dict.values()
    Out[78]: dict_values(['laowang', 25, '男'])

    items:返回字典中的所有键值对

    In [79]: my_dict.items()
    Out[79]: dict_items([('name', 'laowang'), ('age', 25), ('sex', '男')])

    字典的遍历

    key的遍历:

    In [82]: for key in my_dict.keys():
    ...: print(key)
    ...:
    ...:
    name
    age
    sex

    value的遍历

    In [83]: for value in my_dict.values():
    ...: print(value)
    ...:
    laowang
    25

    遍历字典的所有项

    In [86]: for dic in my_dict.items():
    ...: print("key=%s,value=%s"%(dic))
    ...:
    ...:
    key=name,value=laowang
    key=age,value=25
    key=sex,value=男

    今天到这儿呢,已经结束了,我之所以把代码前面的也复制过来,是希望想学习python的小伙伴,可以自己打一边代码 而不是复制.

  • 相关阅读:
    CEIWEI CommTone串口调试精灵7.1 串口调试 串口工具
    CEIWEI USBMonitor USB监控精灵 v2.3.2 USB过滤驱动 USB监控
    CommMonitor8.0 串口过滤驱动 SDK DLL版本 C#/Delphi调用DEMO
    CommMonitor10.0.3串口过滤工具(serial port monitor)
    (1)、JEasyUI 之 Datagrid的Combobox 显示 textField 值的问题
    button 使用 flex 布局的兼容性问题
    探索 Reflect.apply 与 Function.prototype.apply 的区别
    awk 输出前 N 列的最简单方法
    在 Ubuntu 18.04 下安装 fcitx 及搜狗拼音输入法
    禁用 Gnome Shell 默认的 Ubuntu Dock 和 Ubuntu AppIndicators 扩展
  • 原文地址:https://www.cnblogs.com/sandiandian/p/8971599.html
Copyright © 2011-2022 走看看