zoukankan      html  css  js  c++  java
  • Python

      列表和元祖是Python 6种内置序列类型中最常见的两种,其中列表是可变序列类型,元祖是不可变序列类型。

    1. 创建列表

    将不同数据项,使用逗号分隔,用中括号括起来,就可以创建列表。

    >>> fruits = ['apple','banana','mango','orange','pear']
    >>> fruits
    ['apple', 'banana', 'mango', 'orange', 'pear']

    使用Python内置函数 len(list) 返回列表长度

    >>> len(fruits)
    5

    我们可以创建没有任何元素的空列表

    >>> cars = []
    >>> cars
    []

    还可以使用内置函数 list(seq) 将其他序列转化为列表

    >>> str = 'Hello'
    >>> list(str)
    ['H', 'e', 'l', 'l', 'o']
    
    >>> tup = (10, 20, 30)
    >>> list(tup)
    [10, 20, 30]

    列表中元素的数据类型可以不同

    >>> multi = ['apple', 10, ('cat', 'dog')]
    >>> multi
    ['apple', 10, ('cat', 'dog')]

    2. 访问列表元素

    通过索引访问列表中的元素,索引从0开始。当访问列表中的元素时,确保索引不要越界,否则会报错。

    >>> fruits = ['apple','banana','mango','orange','pear']
    >>> fruits[0]
    'apple'
    >>> fruits[1]
    'banana'

    索引超出范围时,将返回IndexError错误,确保索引不要越界,最后一个元素的索引是 len(list)-1 

    >>> fruits[5]
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
    IndexError: list index out of range

    最后一个元素的索引还可以用 -1 表示,倒数第2个用 -2 表示,依次类推。

    >>> fruits[-1]
    'pear'
    >>> fruits[-2]
    'orange'

    想知道列表元素的索引,使用列表方法 list.index(obj) ,该方法返回从左到右匹配到的第一个元素的索引。

    >>> fruits.index('orange')
    3

    列表中可能存在重复的元素,使用方法 list.count(obj) 返回某个元素在列表中出现的次数。

    >>> nums = [1, 2, 3, 3, 5, 5, 5]
    >>> nums.count(3)
    2
    >>> nums.count(5)
    3

     

    3. 对列表进行增、删、改等操作

    追加列表元素,方法 list.append(obj) 在列表的末尾追加元素。

    >>> fruits = ['apple']
    >>> fruits
    ['apple']
    >>> fruits.append('banana')
    >>> fruits
    ['apple', 'banana']
    >>> fruits.append('mango')
    >>> fruits.append('orange')
    >>> fruits.append('pea')
    >>> fruits
    ['apple', 'banana', 'mango', 'orange', 'pea']

    将其他序列中的元素追加到列表中,方法 list.extend(seq) 将其他序列中的元素追加到列表末尾

    >>> fruits =  ['apple','banana']
    >>> students = ('xioaming', 'xiaohua')
    >>> fruits.extend(students)
    >>> fruits
    ['apple', 'banana', 'xioaming', 'xiaohua']
    >>> word = 'HELLO' >>> fruits.extend(word) >>> fruits ['apple', 'banana', 'xioaming', 'xiaohua', 'H', 'E', 'L', 'L', 'O']

    插入列表元素,方法 list.insert(index, value) 将元素插入指定索引的位置

    >>> digit = ['10', '11', '12', '13']
    >>> digit.insert(1, '88')
    >>> digit
    ['10', '88', '11', '12', '13']

    通过索引删除列表元素,方法 list.pop() 默认删除列表中最后一个元素,也可以通过索引指定删除列表中的具体元素 list.pop(index) 

    >>> fruits.pop()
    'pea'
    >>> fruits
    ['apple', 'banana', 'mango', 'orange']
    >>> fruits.pop(1)
    'banana'
    >>> fruits
    ['apple', 'mango', 'orange']

    通过元素删除列表元素,方法 list.remove(obj) 删除从左到右匹配到的第一个元素

    >>> fruits = ['apple','banana','mango','orange','pear']
    >>> fruits.remove('banana')
    >>> fruits
    ['apple', 'mango', 'orange', 'pear']
    
    >>> nums = [1, 2, 3, 3, 5, 5, 5]
    >>> nums.remove(3)
    >>> nums
    [1, 2, 3, 5, 5, 5]

    替换列表元素,对对应索引位置的元素重新赋值,就可以替换该元素

    >>> fruits = ['apple','banana','mango','orange','pear']
    >>> fruits[1] = 'dog'
    >>> fruits
    ['apple', 'dog', 'mango', 'orange', 'pear']

    对列表中的元素重新排序,方法 list.sort() 从小到大排序列表中的元素, list.sort(reverse=True) 从大到小排序,该方法是直接改变原列表元素的顺序。

    >>> nums = [0, 5, 3, 2, 4, 1]
    >>> nums.sort()
    >>> nums
    [0, 1, 2, 3, 4, 5]
    
    >>> nums = [0, 5, 3, 2, 4, 1]
    >>> nums.sort(reverse=True)
    >>> nums
    [5, 4, 3, 2, 1, 0]

    反转列表中元素顺序,方法 list.reverse() 对原列表元素反向排序

    >>> fruits = ['apple','banana','mango','orange','pear']
    >>> fruits.reverse()
    >>> fruits
    ['pear', 'orange', 'mango', 'banana', 'apple']

    合并列表,使用“+”可以将多个列表合并为一个新的列表

    >>> fruits =  ['apple','banana']
    >>> nums = [1, 2, 3]
    >>> students = ['xiaoming', 'xiaohua']
    >>> fruits + nums + students
    ['apple', 'banana', 1, 2, 3, 'xiaoming', 'xiaohua']

    截取列表,使用语句 list[N1:N2] 截取列表索引为N1到N2-1的元素形成新列表

    >>> nums = [10, 11, 12, 13, 14, 15]
    >>> nums[2:5]
    [12, 13, 14]

    在Python中,使用赋值语句将列表a赋值给列表b,其实只是简单的对象引用,a和b指向的是同一片内存区域,相当于b是a的别名而已

    >>> a = [10, 11, 12, 13]
    >>> b = a
    >>> a is b
    True
    >>> a[1] = 88
    >>> a
    [10, 88, 12, 13]
    >>> b
    [10, 88, 12, 13]

    复制列表,要真正的将a列表的元素复制给b列表,而不是引用,需要使用方法 list.copy(list) 

    >>> a = [10, 11, 12, 13]
    >>> b = a.copy()
    >>> a is b
    False
    >>> a[1] = 88
    >>> a
    [10, 88, 12, 13]
    >>> b
    [10, 11, 12, 13]

    清空列表,方法 list.clear() 清空列表元素

    >>> fruits = ['apple','banana','mango','orange','pear']
    >>> fruits.clear()
    >>> fruits
    []
    Andraw|朱标
  • 相关阅读:
    vector<vector<int>> 判断三个数为一组是否重复
    数位dp——hdu2089不要62
    nyoj1099 四点坐标判断正方形
    构造回文——最长公共子序列问题 java
    nyoj08 一种排序
    记录一个protobuf枚举类型引发问题的分析和思考
    记录一下996.icu
    Android N requires the IDE to be running with Java 1.8 or later
    使用fresco后引发的关于造轮子的思考
    使用了一段时间的instant run 记录一下遇到的问题
  • 原文地址:https://www.cnblogs.com/zhubiao/p/9396133.html
Copyright © 2011-2022 走看看