Python - 列表

Posted slynxes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
[]

以上是关于Python - 列表的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第25篇):将多行字符串拆分成列表

Python代码阅读(第40篇):通过两个列表生成字典

Python代码阅读(第13篇):检测列表中的元素是否都一样

30 段 Python 实用代码

python常用代码

Python代码阅读(第41篇):矩阵转置