简介
在这个实验中,你将学习如何在 Python 中判断一个变量是否为集合。你将首先了解集合的基本特征,包括其无序性和元素的唯一性。通过实践练习,你将使用花括号和 set()
构造函数来创建集合,并探索常见的集合操作,如添加和删除元素,以及检查元素是否存在。
然后,本实验将指导你使用 type()
函数和 isinstance()
函数来确定一个变量是否确实是集合。在本实验结束时,你将具备在 Python 代码中自信地识别集合的知识和技能。
在这个实验中,你将学习如何在 Python 中判断一个变量是否为集合。你将首先了解集合的基本特征,包括其无序性和元素的唯一性。通过实践练习,你将使用花括号和 set()
构造函数来创建集合,并探索常见的集合操作,如添加和删除元素,以及检查元素是否存在。
然后,本实验将指导你使用 type()
函数和 isinstance()
函数来确定一个变量是否确实是集合。在本实验结束时,你将具备在 Python 代码中自信地识别集合的知识和技能。
在这一步中,你将学习 Python 中的集合。集合是唯一元素的无序集合。这意味着集合不能包含重复的值,并且集合中元素的顺序是不确定的。集合对于执行数学集合操作(如并集、交集和差集)非常有用。
让我们从创建一个集合开始。你可以使用花括号 {}
或 set()
构造函数来创建集合。
在 LabEx 环境中打开 VS Code 编辑器。
在 ~/project
目录下创建一个名为 sets_example.py
的新文件。
## Create a set using curly braces
my_set = {1, 2, 3, 4, 5}
print(my_set)
## Create a set using the set() constructor
another_set = set([3, 4, 5, 6, 7])
print(another_set)
在终端中使用 python
命令运行脚本:
python ~/project/sets_example.py
你应该会看到以下输出:
{1, 2, 3, 4, 5}
{3, 4, 5, 6, 7}
现在,让我们探索一些常见的集合操作。
在你的 sets_example.py
文件中添加以下代码:
## Add an element to a set
my_set.add(6)
print(my_set)
## Remove an element from a set
my_set.remove(1)
print(my_set)
## Check if an element is in a set
print(3 in my_set)
print(1 in my_set)
再次运行脚本:
python ~/project/sets_example.py
你应该会看到类似以下的输出:
{1, 2, 3, 4, 5, 6}
{2, 3, 4, 5, 6}
True
False
集合在从列表中去除重复元素方面特别有用。
在你的 sets_example.py
文件中添加以下代码:
## Create a list with duplicate elements
my_list = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
print(my_list)
## Convert the list to a set to remove duplicates
unique_elements = set(my_list)
print(unique_elements)
运行脚本:
python ~/project/sets_example.py
输出应该是:
[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
{1, 2, 3, 4}
如你所见,集合 unique_elements
只包含原始列表中的唯一元素。
type()
进行识别在这一步中,你将学习如何使用 Python 中的 type()
函数来识别变量的数据类型。理解数据类型对于编写正确且高效的代码至关重要。
type()
函数返回对象的数据类型。让我们看看它在不同数据类型上是如何工作的。
在 LabEx 环境中打开 VS Code 编辑器。
在 ~/project
目录下创建一个名为 type_example.py
的新文件。
## Check the type of an integer
x = 10
print(type(x))
## Check the type of a float
y = 3.14
print(type(y))
## Check the type of a string
z = "Hello"
print(type(z))
## Check the type of a boolean
a = True
print(type(a))
## Check the type of a list
b = [1, 2, 3]
print(type(b))
## Check the type of a tuple
c = (1, 2, 3)
print(type(c))
## Check the type of a set
d = {1, 2, 3}
print(type(d))
## Check the type of a dictionary
e = {"name": "Alice", "age": 30}
print(type(e))
在终端中使用 python
命令运行脚本:
python ~/project/type_example.py
你应该会看到以下输出:
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'tuple'>
<class 'set'>
<class 'dict'>
输出显示了每个变量的数据类型。例如,<class 'int'>
表示该变量是整数,<class 'str'>
表示该变量是字符串。
理解变量的数据类型很重要,因为它决定了你可以对该变量执行哪些操作。例如,你可以对整数和浮点数执行算术运算,但不能对字符串执行此类操作。
让我们来看一个示例,展示如何在执行操作之前使用 type()
函数检查变量是否为特定类型。
在你的 type_example.py
文件中添加以下代码:
## Check if a variable is an integer before adding 5 to it
num = 10
if type(num) == int:
result = num + 5
print(result)
else:
print("Variable is not an integer")
## Check if a variable is a string before concatenating it with another string
text = "Hello"
if type(text) == str:
greeting = text + ", World!"
print(greeting)
else:
print("Variable is not a string")
再次运行脚本:
python ~/project/type_example.py
你应该会看到以下输出:
15
Hello, World!
在这个示例中,type()
函数分别用于在执行加法和拼接操作之前,检查变量 num
是否为整数以及变量 text
是否为字符串。
isinstance()
进行确认在这一步中,你将学习如何使用 Python 中的 isinstance()
函数来确认一个对象是否是某个特定类或类型的实例。与使用 type()
相比,这是一种更可靠且推荐的检查数据类型的方法。
isinstance()
函数接受两个参数:要检查的对象以及要与之进行比较的类或类型。如果对象是指定类或类型的实例,则返回 True
,否则返回 False
。
在 LabEx 环境中打开 VS Code 编辑器。
在 ~/project
目录下创建一个名为 isinstance_example.py
的新文件。
## Check if a variable is an integer
x = 10
print(isinstance(x, int))
## Check if a variable is a float
y = 3.14
print(isinstance(y, float))
## Check if a variable is a string
z = "Hello"
print(isinstance(z, str))
## Check if a variable is a boolean
a = True
print(isinstance(a, bool))
## Check if a variable is a list
b = [1, 2, 3]
print(isinstance(b, list))
## Check if a variable is a tuple
c = (1, 2, 3)
print(isinstance(c, tuple))
## Check if a variable is a set
d = {1, 2, 3}
print(isinstance(d, set))
## Check if a variable is a dictionary
e = {"name": "Alice", "age": 30}
print(isinstance(e, dict))
在终端中使用 python
命令运行脚本:
python ~/project/isinstance_example.py
你应该会看到以下输出:
True
True
True
True
True
True
True
True
所有变量都是我们所检查类型的实例,因此在每种情况下 isinstance()
都返回了 True
。
isinstance()
在处理继承时特别有用。如果一个类继承自另一个类,那么该子类的对象也被视为父类的实例。
在你的 isinstance_example.py
文件中添加以下代码:
class Animal:
pass
class Dog(Animal):
pass
my_dog = Dog()
## Check if my_dog is an instance of Dog
print(isinstance(my_dog, Dog))
## Check if my_dog is an instance of Animal
print(isinstance(my_dog, Animal))
再次运行脚本:
python ~/project/isinstance_example.py
你应该会看到以下输出:
True
True
在这个例子中,Dog
类继承自 Animal
类。因此,my_dog
既是 Dog
类的实例,也是 Animal
类的实例。
通常,使用 isinstance()
比使用 type()
更受青睐,因为它能正确处理继承关系,并且更加灵活。
在本次实验中,你学习了 Python 中的集合(set),它是无序且元素唯一的集合。你使用花括号 {}
和 set()
构造函数创建了集合,并执行了诸如添加和移除元素等常见的集合操作。
此外,你还探索了如何通过将列表转换为集合来去除列表中的重复元素。你也学会了如何使用 in
运算符来检查元素是否存在于集合中。