zoukankan      html  css  js  c++  java
  • python:列表和元组

    前面的学习中,我们已经知道了两种python的数据类型:int和str。再强调一下对数据类型的理解,这个世界是由数据组成的,数据可能是数字(注意,别搞混了,数字和数据是有区别的),也可能是文字、或者是声音、视频等。在python中(其它高级语言也类似)把状如2,3这样的数字划分为一个类型,把状如“你好”这样的文字划分一个类型,前者是int类型,后者是str类型(这里就不说翻译的名字了,请看官熟悉用英文的名称,对日后编程大有好处,什么好处呢?谁用谁知道!)。

    前面还学习了变量,如果某个变量跟一个int类型的数据用线连着(行话是:赋值),那么这个变量我们就把它叫做int类型的变量;有时候还没赋值呢,是准备让这个变量接收int类型的数据,我们也需要将它声明为int类型的变量。不过,在python里面有一样好处,变量不用提前声明,随用随命名。

    这一讲中的list类型,也是python的一种数据类型。

    LIST在python中具有非常强大的功能。

    定义

    在python中,用方括号表示一个list,[ ]

    在方括号里面,可以是int,也可以是str类型的数据,甚至也能够是True/False这种布尔值。看下面的例子,特别注意阅读注释。 

    定义一个列表

    >>> names = ['zhangqiang','wangzhaoyang','lilei']

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

    >>> names[0]
    'zhangqiang'
    >>> names[1]
    'wangzhaoyang'
    >>> names[2]
    'lilei'
    >>> names[-2]####还可以倒着取
    'wangzhaoyang'
    >>> names[-3]
    'zhangqiang'
    >>> names[-1]

    列表切片

    >>> names = ['zhangqiang','wangzhaoyang','lilei','jack','tom']
    >>> names[1:4]  ####左开右闭
    ['wangzhaoyang', 'lilei', 'jack']
    >>> names[1:-1]
    ['wangzhaoyang', 'lilei', 'jack']
    >>> names[0:4]
    ['zhangqiang', 'wangzhaoyang', 'lilei', 'jack']
    >>> names[:4]
    ['zhangqiang', 'wangzhaoyang', 'lilei', 'jack']
    >>> names[0:]
    ['zhangqiang', 'wangzhaoyang', 'lilei', 'jack', 'tom']
    >>> names[0::2]  ##后面的2是代表步长,每隔一个元素,就取一个
    ['zhangqiang', 'lilei', 'tom'] >>> names[::2] ['zhangqiang', 'lilei', 'tom']

    追加

    >>> names = ['zhangqiang','wangzhaoyang','lilei','jack','tom']
    >>> names.append('zhangliang')
    >>> names
    ['zhangqiang', 'wangzhaoyang', 'lilei', 'jack', 'tom', 'zhangliang']

    插入

    >>> names.insert(2,'zhangyang')
    >>> names
    ['zhangqiang', 'wangzhaoyang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang'

    修改

    >>> names
    ['zhangqiang', 'wangzhaoyang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']
    >>> names[1]= 'ligang'
    >>> names
    ['zhangqiang', 'ligang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']

    删除

    >>> names
    ['zhangqiang', 'ligang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']
    >>> del   names[0]
    >>> names
    ['ligang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']

      >>> names.remove('zhangyang')   #删除执行元素
      >>> names
      ['ligang', 'lilei', 'jack', 'tom', 'zhangliang']  

     >>> names.pop()  #删除最后一个
     'zhangliang'
     >>> names
     ['ligang', 'lilei', 'jack', 'tom']

    扩展

    >>> names = ['ligang', 'lilei', 'jack', 'tom']
    >>> list1 = [1,2,3,4]
    >>> names.extend(list1)
    >>> names
    ['ligang', 'lilei', 'jack', 'tom', 1, 2, 3, 4]

    拷贝

    深拷贝和浅拷贝

    统计

    >>> names
    ['ligang', 'lilei', 'jack', 'tom', 1, 2, 3, 4, 1, 3, 5]>>> names.count(1)
    2

    排序

    >>> names
    ['ligang', 'lilei', 'jack', 'tom', 1, 2, 3, 4, 1, 3, 5]
    >>> names.sort()  # 不同数据类型不能放在一起排序
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: '<' not supported between instances of 'int' and 'str'

     >>> names[4]='1'
     >>> names[5]='2'
     >>> names[6]='3'
     >>> names
     ['jack', 'ligang', 'lilei', 'tom', '1', '2', '3']
     >>> names.sort()
     >>> names
     ['1', '2', '3', 'jack', 'ligang', 'lilei', 'tom']

     

    反转

    >>> names.reverse()
    >>> names
    ['tom', 'lilei', 'ligang', 'jack', '3', '2', '1']

    获取下表

    >>> names
    ['tom', 'lilei', 'ligang', 'jack', '3', '2', '1']
    >>> names.index('ligang')
    2

    元组

    元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

    语法

    test_tuple = ('tom', 'lilei', 'ligang', 'jack','tom')

    它只有2个方法,一个是count,一个是index,

    >>> test_tuple.count("tom")
    2
    >>> test_tuple.index("tom")
    0
  • 相关阅读:
    TCP ,UDP概念和TCP三次握手连接 的知识点总结
    常见的五类排序算法图解和实现(插入类:直接插入排序,折半插入排序,希尔排序)
    c/c++ 函数、常量、指针和数组的关系梳理
    编译器出现conflicting types for 某某的错误原因总结
    字符串模式匹配之KMP算法图解与 next 数组原理和实现方案
    图解字符串的朴素模式匹配算法
    字符串和字符串的常见存储结构
    objective-c中的@selector()和 c /c++的函数指针
    IOS-Foundation框架结构
    一道面试题:用多种方法实现两个数的交换
  • 原文地址:https://www.cnblogs.com/wzy23/p/11424318.html
Copyright © 2011-2022 走看看