Python 集合(数组)

Python 编程语言中有四种集合数据类型:

  • 列表(List) 是一种有序和可更改的集合。允许重复的成员。
  • 元组(Tuple) 是一种有序且不可更改的集合。允许重复的成员。
  • 集合(Set) 是一个无序和无索引的集合。没有重复的成员。
  • 词典(Dictionary) 是一个无序,可变和有索引的集合。没有重复的成员。

选择集合类型时,了解该类型的属性很有用。
为特定数据集选择正确的类型可能意味着保留含义,并且可能意味着提高效率或安全性。

列表

列表是一个有序且可更改的集合。在 Python 中,列表用方括号编写。

实例

创建列表:

  1. thislist = ["apple", "banana", "cherry"]
  2. print(thislist)

访问项目

您可以通过引用索引号来访问列表项:

实例

打印列表的第二项:

  1. thislist = ["apple", "banana", "cherry"]
  2. print(thislist[1])

负的索引

负索引表示从末尾开始,-1 表示最后一个项目,-2 表示倒数第二个项目,依此类推。

实例

打印列表的最后一项:

  1. thislist = ["apple", "banana", "cherry"]
  2. print(thislist[-1])

索引范围

您可以通过指定范围的起点和终点来指定索引范围。
指定范围后,返回值将是包含指定项目的新列表。

实例

返回第三、第四、第五项:

  1. thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
  2. print(thislist[2:5])

注释: 搜索将从索引 2(包括)开始,到索引 5(不包括)结束。 请记住,第一项的索引为 0。

通过省略起始值,范围将从第一项开始:

实例

此示例将项目从开头返回为 “orange”:

  1. thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
  2. print(thislist[:4])

通过省略结束值,范围将继续到列表的末尾:

实例

此示例返回从 “cherry” 到结尾的项目:

  1. thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
  2. print(thislist[2:])

负指数范围

如果要从列表末尾开始搜索,请指定负索引:

实例

此例将返回从索引 -4(包括)到索引 -1(排除)的项目:

  1. thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
  2. print(thislist[-4:-1])

更改项目值

如需更改特定项目的值,请引用索引号:

实例

更改第二项:

  1. thislist = ["apple", "banana", "cherry"]
  2. thislist[1] = "blackcurrant"
  3. print(thislist)

遍历列表

您可以使用 for 循环遍历列表项:

实例

逐个打印列表中的所有项目:

  1. thislist = ["apple", "banana", "cherry"]
  2. for x in thislist:
  3. print(x)

检查项目是否存在

如需确定列表中是否存在指定的项,请使用 in 关键字:

实例

检查列表中是否存在 “apple”:

  1. thislist = ["apple", "banana", "cherry"]
  2. if "apple" in thislist:
  3. print("Yes, 'apple' is in the fruits list")

列表长度

如需确定列表中有多少项,请使用 len() 方法:

实例

打印列表中的项目数:

  1. thislist = ["apple", "banana", "cherry"]
  2. print(len(thislist))

添加项目

如需将项目添加到列表的末尾,请使用 append() 方法:

实例

使用 append() 方法追加项目:

  1. thislist = ["apple", "banana", "cherry"]
  2. thislist.append("orange")
  3. print(thislist)

要在指定的索引处添加项目,请使用 insert() 方法:

实例

插入项目作为第二个位置:

  1. thislist = ["apple", "banana", "cherry"]
  2. thislist.insert(1, "orange")
  3. print(thislist)

删除项目

有几种方法可以从列表中删除项目:

实例

remove() 方法删除指定的项目:

  1. thislist = ["apple", "banana", "cherry"]
  2. thislist.remove("banana")
  3. print(thislist)

实例

pop() 方法删除指定的索引(如果未指定索引,则删除最后一项):

  1. thislist = ["apple", "banana", "cherry"]
  2. thislist.pop()
  3. print(thislist)

实例

del 关键字删除指定的索引:

  1. thislist = ["apple", "banana", "cherry"]
  2. del thislist[0]
  3. print(thislist)

实例

del 关键字也能完整地删除列表:

  1. thislist = ["apple", "banana", "cherry"]
  2. del thislist

实例

clear() 方法清空列表:

  1. thislist = ["apple", "banana", "cherry"]
  2. thislist.clear()
  3. print(thislist)


复制列表

您只能通过键入 list2 =
list1来复制列表,因为:list2 将只是对 list1 的引用, list1 中所做的更改也将自动在 list2 中进行。
有一些方法可以进行复制,一种方法是使用内置的 List 方法 copy()。

实例

使用 copy() 方法来复制列表:

  1. thislist = ["apple", "banana", "cherry"]
  2. mylist = thislist.copy()
  3. print(mylist)

制作副本的另一种方法是使用内建的方法 list()。

实例

使用 list() 方法复制列表:

  1. thislist = ["apple", "banana", "cherry"]
  2. mylist = list(thislist)
  3. print(mylist)

合并两个列表

在 Python 中,有几种方法可以连接或串联两个或多个列表。
最简单的方法之一是使用 + 运算符。

实例

合并两个列表:

  1. list1 = ["a", "b" , "c"]
  2. list2 = [1, 2, 3]
  3. list3 = list1 + list2
  4. print(list3)

连接两个列表的另一种方法是将 list2 中的所有项一个接一个地追加到 list1 中:

实例

把 list2 追加到 list1 中:

  1. list1 = ["a", "b" , "c"]
  2. list2 = [1, 2, 3]
  3. for x in list2:
  4. list1.append(x)
  5. print(list1)

或者,您可以使用 extend() 方法,其目的是将一个列表中的元素添加到另一列表中:

实例

使用 extend() 方法将 list2 添加到 list1 的末尾:

  1. list1 = ["a", "b" , "c"]
  2. list2 = [1, 2, 3]
  3. list1.extend(list2)
  4. print(list1)

list() 构造函数

也可以使用 list() 构造函数创建一个新列表。

实例

使用 list() 构造函数创建列表:

  1. thislist = list(("apple", "banana", "cherry")) # 注意双圆括号
  2. print(thislist)

列表方法

Python 有一组可以在列表上使用的内建方法。

方法 描述
append() 在列表的末尾添加一个元素
clear() 删除列表中的所有元素
copy() 返回列表的副本
count() 返回具有指定值的元素数量。
extend() 将列表元素(或任何可迭代的元素)添加到当前列表的末尾
index() 返回具有指定值的第一个元素的索引
insert() 在指定位置添加元素
pop() 删除指定位置的元素
remove() 删除具有指定值的项目
reverse() 颠倒列表的顺序
sort() 对列表进行排序