Python的学习笔记---list和tuple

付威     2019-03-06   1997   5min  

今天学习了python的list和tuple的使用,python中的数组类型的结构比其他语言更为灵活,下面我们说说他们的用法:

list使用

  1. 定义一个list

     >>> arr=[1,2,3,4,5,6]
     >>> arr
     [1, 2, 3, 4, 5, 6]
    

    arr就是定义的数组,使用索引来获得数组里面的数据如:arr[0],arr[1]等等,在python数组有一个特殊的用法,使用-1,-2可以取倒数第一或第二的值。

     >>> arr[0]
     1
     >>> arr[-1]
     6
    

    如果超出界限,会抛出异常:

     Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     IndexError: list index out of range
    

    由于python是弱类型的语言,所以数组里面可以存储不同类型的数据:

     >>> arr=[1,2,"hello",[1,2,34]]
     >>> arr
     [1, 2, 'hello', [1, 2, 34]]
    

    如果想拿到34这个值,可以类似二维数组那样arr[3][2]

    可以使用range函数快速定义个有序的数组:

     >>> list(range(10))
     [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     >>> 
    

    range的具体的使用方法range(start, stop[, step])range(1,10,2)代表的从1-10每次长度的2

  2. 数组的相关的函数

    • len 获得数组的长度

         >>> len(arr)
         4
      
    • append 增加一个元素

         >>> arr.append("1111")
         >>> arr
         [1, 2, 'hello', [1, 2, 34], '1111']
         >>> 
      
    • insert插入数据

         >>> arr.insert(1,213)
         >>> arr
         [1, 213, 2, 'hello', [1, 2, 34], '1111']
      

      insert(1,213)代表在1位置,插入一个213的数字

    • pop删除元素

      poppython中删除元素的方法,arr.pop()默认删除最后一个元素,arr.pop(i)代表可以删除指定位置的元素:

         >>> arr.pop()
         '1111'
         >>> arr
         [1, 213, 2, 'hello', [1, 2, 34]]
         >>> 
      
         >>> arr.pop(1)
         213
         >>> arr
         [1, 2, 'hello', [1, 2, 34]]
      

tuple的使用

tuple是一个有序的数组,和list类似,tuple的特点是定义后不能在被修改,这样可以让代码中的数据更加安全。

定义tuple使用(),例如定义一个tuple如下:

>>> tup=(1,2,3)
>>> tup
(1, 2, 3)

由于tuple不可修改,所以不能使用append,insert等修改元祖的方法。

如果定义一个只有一个元素的tuple:

>>> tup=(1)
>>> tup
1

这样我们发现,tup不是一个元祖,而是一个数字。原来是只用一个元素的时候,tuple中的()与数学运算中的括号冲突了,所以当定义只有一个元素的tuple的时候,需要在最后加一个,,方法如下:

>>> tup=(1,)
>>> tup
(1,)

如果在tuple中定义一个数组,如果改变数组的值,tuple中的值也会发生改变:

>>> tup=(1,[1,2])
>>> tup[1][0]="a"
>>> tup[1][1]="b"
>>> tup
(1, ['a', 'b'])
(本文完)

作者:付威

博客地址:http://blog.laofu.online

如果觉得对您有帮助,可以下方的RSS订阅,谢谢合作

如有任何知识产权、版权问题或理论错误,还请指正。

本文是付威的网络博客原创,自由转载-非商用-非衍生-保持署名,请遵循:创意共享3.0许可证

交流请加群113249828: 点击加群   或发我邮件 laofu_online@163.com

付威

获得最新的博主文章,请关注上方公众号