📜  python中set和list的区别(1)

📅  最后修改于: 2023-12-03 15:04:28.833000             🧑  作者: Mango

Python中set和list的区别

在Python中,set和list都是常用的数据类型,但是它们在功能和使用方面有着明显的区别。

Set

set是一组无序的、不重复的元素的集合,它类似于数学中的集合。set可以用大括号{}或者set()函数创建,元素之间用逗号分隔。

示例代码:

# 创建一个set
a = {1, 2, 3, 4, 5}
b = set([2, 4, 6, 8, 10])
print(a)
print(b)

输出结果:

{1, 2, 3, 4, 5}
{2, 4, 6, 8, 10}

set有以下几个特点:

  • 集合中的元素是无序的。set本质上是一个哈希表,因此它的元素是无序的。
  • 集合中的元素是唯一的。set会自动去除重复的元素。
  • set可以进行交集、并集、差集等运算。例如:
# set的运算
a = {1, 2, 3, 4, 5}
b = {4, 5, 6, 7, 8}
print(a & b)  # 交集
print(a | b)  # 并集
print(a - b)  # 差集

输出结果:

{4, 5}
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3}

set的操作时间复杂度跟元素个数有关,因此在大数据量的情况下,使用set比list更快。

List

list是一组有序的、可重复的元素的集合,它类似于数组。list可以用方括号[]或者list()函数创建,元素之间用逗号分隔。

示例代码:

# 创建一个list
a = [1, 2, 3, 4, 5]
b = list(range(1, 6))
print(a)
print(b)

输出结果:

[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]

list有以下几个特点:

  • 列表中的元素是有序的。即元素在列表中的位置是有意义的。
  • 列表中的元素是可重复的。列表中可以出现相同的元素。
  • list可以进行索引、切片、排序等操作。例如:
# list的操作
a = [1, 4, 3, 2, 5]
print(a[0])      # 索引
print(a[1:3])    # 切片
a.sort()         # 排序
print(a)

输出结果:

1
[4, 3]
[1, 2, 3, 4, 5]

list的操作时间复杂度跟元素个数有关,因此在大数据量的情况下,使用set比list更慢。

总结

set和list在应用场景上有所不同,选择哪种数据类型应根据具体情况来决定。如果需要去重、集合运算等操作,应选择set;如果需要保持元素的顺序、可以重复、可以进行索引等操作,应选择list。