码迷,mamicode.com
首页 > 编程语言 > 详细

python3基本数据类型02——列表

时间:2018-05-30 00:19:59      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:print   深拷贝   扩展   存在   object   value   也会   not   class   

一、列表

  直接赋值:只是传递对象的引用,原始列表发生改变时,被赋值的列表b也会改变

>>> a = [1,[2,3,4]]
>>> b = a
>>> a,b
([1, [2, 3, 4]], [1, [2, 3, 4]])
>>> a.append(5)
>>> a,b
([1, [2, 3, 4], 5], [1, [2, 3, 4], 5])

    >>> a[1].append(6)
 >>> a,b
 ([1, [2, 3, 4, 6], 5], [1, [2, 3, 4, 6], 5])

  浅拷贝:只拷贝父对象,不拷贝子对象,因此当原始列表的父对象和子对象改变时,被赋值的列表b的子对象会改变父对象不会改变

>>> c = a.copy()
>>> a,c
([1, [2, 3, 4], 5], [1, [2, 3, 4], 5])
>>> a.append(7)
>>> a,c
([1, [2, 3, 4], 5, 7], [1, [2, 3, 4], 5])
>>> a[1].append(6)
>>> a,c
([1, [2, 3, 4, 6], 5,7], [1, [2, 3, 4, 6], 5])
注:红色代表子对象

  深拷贝:copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象

>>>import copy 
>>> c = copy.deepcopy(a)
>>> a, c
({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
>>> a[1].append(5)
>>> a, c
({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})

  

  索引:根据索引查找元素

>>> age_list = [18,15,19]
>>> age_list[0]
18

  切片:截取需要的元素

>>> age_list[0:2]
[18, 15]

  长度:列表元素的个数

>>> len(age_list)
3

  循环:循环输出列表里的元素

age_list = [18,15,19]
for item in age_list:
    print(item)

  列表内部提供的其它功能:   

    append(self, p_object):在列表末尾添加对象

      输入:p_object()需要添加的对象

      功能:在列表末尾添加对象

      输出:无

>>> age_list = [12,13,14]
>>> age_list.append(15)
>>> age_list
[12, 13, 14, 15]

    clear(self):清空

      输入:无

      功能:清空列表

      输出:无

>>> l1 = age_list
>>> l1
[12, 13, 14, 15]
>>> l1.clear()
>>> l1
[]

    copy(self):浅拷贝,复制列表的父对象,不复制子对象

    count(self, value):查询value参数在列表中的个数

    extend(self, iterable):扩展列表元素

      输入:iterable是一个对象可以是字符串、列表、字典、元组

      功能:将iterable中的元素一个个添加到列表尾部

      输出:无

>>> a
[1, [2, 3, 4, 6], 5, 1]
>>> d = ‘12345‘
>>> a.extend(d)
>>> a
[1, [2, 3, 4, 6], 5, 1, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘]
    index(self, value, start=None, stop=None):查询value参数的位置
      输入:value为要查找的值
      功能:根据值查找
      输出:若找到则输出第一次(左边)出现的位置,否则报错
>>> a
[1, 2, 3, 1]
>>> a.index(1)
0
>>> a.index(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 0 is not in list

     insert(self, index, p_object):插入

        输入:index索引号,p_object要插入的对象

        功能:在索引号前插入一个对象

        输出:无

>>> a
[1, 2, 3, 1]
>>> a.insert(1,‘a‘)
>>> a
[1, ‘a‘, 2, 3, 1]
     pop(self, index=None):删除(根据索引)   等于    del  list[index]
      输入:index索引号
      功能:根据索引号删除列表里的元素,默认删除最后一个
      输出:输出删除的元素,若列表为空或索引超过列表长度就会报错
>>> a
[1, ‘a‘, 2, 3, 1]
>>> a.pop(1)
‘a‘
>>> a.pop(5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: pop index out of range
    remove(self, value):删除(根据对象)
      输入:要删除的对象
      功能:根据值删除列表元素,若有多个value值,则删除左边第一个value
      输出:无(若值不存在则报错)
>>> a
[1, 2, 3, 1]
>>> a.remove(1)
>>> a
[2, 3, 1]
    reverse(self):将列表倒序
      输入:无
      功能:将列表里元素的顺序反过来
      输出:无
>>> a
[2, 3, 1]
>>> a.reverse()
>>> a
[1, 3, 2]

  

python3基本数据类型02——列表

标签:print   深拷贝   扩展   存在   object   value   也会   not   class   

原文地址:https://www.cnblogs.com/tandonghao/p/9104671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!