当前位置:优草派 > 问答 > Python问答

python set用法

标签: Python  Python开发  Python Set  作者: liuweihao

回答:

Python Set是一种无序的可变集合,它允许存储不同类型的元素。在Python中,Set是一种内置的数据类型,它可以存储任何类型的数据,包括数字、字符串、元组、列表等。本文将从多个角度来分析Python Set的用法。

1. 创建Set

创建Set有两种方法,一种是使用花括号{},另一种是使用set()函数。使用花括号{}创建Set时,需要注意花括号内的元素不能重复,否则只会保留一个元素。例如:

```

# 使用花括号{}创建Set

my_set = {1, 2, 3, 4, 5}

print(my_set) # {1, 2, 3, 4, 5}

my_set = {1, 2, 3, 4, 5, 5}

print(my_set) # {1, 2, 3, 4, 5}

```

使用set()函数创建Set时,可以传入一个可迭代对象作为参数,例如列表、元组等。例如:

```

# 使用set()函数创建Set

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

my_set = set(my_list)

print(my_set) # {1, 2, 3, 4, 5}

my_tuple = (1, 2, 3, 4, 5)

my_set = set(my_tuple)

print(my_set) # {1, 2, 3, 4, 5}

```

2. Set的基本操作

Set支持的基本操作包括添加元素、删除元素、判断元素是否存在以及获取Set的长度等。

添加元素使用add()函数,例如:

```

# 添加元素

my_set = {1, 2, 3, 4, 5}

my_set.add(6)

print(my_set) # {1, 2, 3, 4, 5, 6}

```

删除元素使用remove()或discard()函数,两者的区别在于如果删除不存在的元素,remove()函数会抛出KeyError异常,而discard()函数不会。例如:

```

# 删除元素

my_set = {1, 2, 3, 4, 5}

my_set.remove(3)

print(my_set) # {1, 2, 4, 5}

my_set.discard(5)

print(my_set) # {1, 2, 4}

my_set.remove(6) # 抛出KeyError异常

```

判断元素是否存在使用in关键字,例如:

```

# 判断元素是否存在

my_set = {1, 2, 3, 4, 5}

print(3 in my_set) # True

print(6 in my_set) # False

```

获取Set的长度使用len()函数,例如:

```

# 获取Set的长度

my_set = {1, 2, 3, 4, 5}

print(len(my_set)) # 5

```

3. Set的数学运算

Set支持的数学运算包括并集、交集、差集和对称差集。

并集使用|运算符或union()函数,例如:

```

# 并集

set1 = {1, 2, 3, 4, 5}

set2 = {4, 5, 6, 7, 8}

print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8}

print(set1.union(set2)) # {1, 2, 3, 4, 5, 6, 7, 8}

```

交集使用&运算符或intersection()函数,例如:

```

# 交集

set1 = {1, 2, 3, 4, 5}

set2 = {4, 5, 6, 7, 8}

print(set1 & set2) # {4, 5}

print(set1.intersection(set2)) # {4, 5}

```

差集使用-运算符或difference()函数,例如:

```

# 差集

set1 = {1, 2, 3, 4, 5}

set2 = {4, 5, 6, 7, 8}

print(set1 - set2) # {1, 2, 3}

print(set1.difference(set2)) # {1, 2, 3}

```

对称差集使用^运算符或symmetric_difference()函数,例如:

```

# 对称差集

set1 = {1, 2, 3, 4, 5}

set2 = {4, 5, 6, 7, 8}

print(set1 ^ set2) # {1, 2, 3, 6, 7, 8}

print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8}

```

4. Set的遍历

Set可以使用for循环进行遍历,例如:

```

# 遍历Set

my_set = {1, 2, 3, 4, 5}

for i in my_set:

print(i)

# 输出:

# 1

# 2

# 3

# 4

# 5

```

5. Set的排序

Set是一种无序的集合,不支持排序。如果需要对Set进行排序,可以先将Set转换为列表,再使用sorted()函数进行排序,例如:

```

# 对Set进行排序

my_set = {3, 1, 4, 2, 5}

my_list = list(my_set)

my_list = sorted(my_list)

print(my_list) # [1, 2, 3, 4, 5]

```

TOP 10
  • 周排行
  • 月排行