如何在 Python 中检查列表是否仅包含数字

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何在 Python 中检查一个列表是否只包含数字。这涉及定义数字列表,包括整数列表、浮点数列表和混合数字列表。你将创建一个名为 numeric_lists.py 的 Python 文件,并使用 VS Code 编辑器来定义这些列表并将其打印到控制台。

本实验将引导你定义整数列表、浮点数列表以及两者的混合列表,展示如何使用 Python 创建和打印这些列表。你将使用 print() 函数显示每个列表的内容,确保你理解如何在 Python 中处理数字列表。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/numeric_types -.-> lab-559527{{"如何在 Python 中检查列表是否仅包含数字"}} python/conditional_statements -.-> lab-559527{{"如何在 Python 中检查列表是否仅包含数字"}} python/lists -.-> lab-559527{{"如何在 Python 中检查列表是否仅包含数字"}} python/build_in_functions -.-> lab-559527{{"如何在 Python 中检查列表是否仅包含数字"}} python/data_collections -.-> lab-559527{{"如何在 Python 中检查列表是否仅包含数字"}} end

定义数字列表

在这一步中,你将学习如何在 Python 中定义数字列表。列表是一组项目的集合,在这种情况下,我们将专注于包含数字的列表。列表是 Python 中的一种基本数据结构,用于存储和操作有序的数据序列。

首先,使用 VS Code 编辑器在你的 ~/project 目录下创建一个名为 numeric_lists.py 的新 Python 文件。

~/project/numeric_lists.py

现在,在编辑器中打开 numeric_lists.py,并添加以下代码来定义一个整数列表:

## Define a list of integers
integer_list = [1, 2, 3, 4, 5]

## Print the list to the console
print(integer_list)

保存文件。接下来,在 VS Code 中打开一个终端,并导航到 ~/project 目录。默认情况下,你应该已经在这个目录中。现在,使用以下命令执行 Python 脚本:

python numeric_lists.py

你应该会看到以下输出:

[1, 2, 3, 4, 5]

现在,让我们定义一个浮点数(小数)列表:

修改 numeric_lists.py 文件,使其包含以下内容:

## Define a list of floating-point numbers
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]

## Print the list to the console
print(float_list)

保存文件并再次运行脚本:

python numeric_lists.py

你应该会看到以下输出:

[1.0, 2.5, 3.7, 4.2, 5.9]

你还可以创建一个包含整数和浮点数的混合列表:

修改 numeric_lists.py 文件,使其包含以下内容:

## Define a list of mixed numbers (integers and floats)
mixed_list = [1, 2.0, 3, 4.5, 5]

## Print the list to the console
print(mixed_list)

保存文件并再次运行脚本:

python numeric_lists.py

你应该会看到以下输出:

[1, 2.0, 3, 4.5, 5]

恭喜!你已经成功在 Python 中定义并打印了数字列表。这是在 Python 中处理数值数据的基础步骤。

结合使用 all()isinstance()

在这一步中,你将学习如何结合使用 all() 函数和 isinstance() 函数,来检查列表中的所有元素是否都属于特定的数字类型。这是一种用于验证数据并确保代码按预期运行的实用技术。

all() 函数会在可迭代对象(如列表)中的所有元素都为真时返回 Trueisinstance() 函数用于检查一个对象是否是指定类或类型的实例。

让我们修改上一步创建的 numeric_lists.py 文件,添加以下代码:

def check_if_all_numeric(data):
  """
  Check if all elements in the list are either integers or floats.
  """
  return all(isinstance(item, (int, float)) for item in data)

## Test cases
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]

print(f"Integer list is all numeric: {check_if_all_numeric(integer_list)}")
print(f"Float list is all numeric: {check_if_all_numeric(float_list)}")
print(f"Mixed list is all numeric: {check_if_all_numeric(mixed_list)}")
print(f"String list is all numeric: {check_if_all_numeric(string_list)}")

以下是代码的详细解释:

  • 我们定义了一个名为 check_if_all_numeric(data) 的函数,它接受一个列表作为输入。
  • 在函数内部,我们使用 all() 函数和一个生成器表达式 (isinstance(item, (int, float)) for item in data)
  • 生成器表达式会遍历 data 列表中的每个 item,并使用 isinstance() 检查它是否是 intfloat 类型的实例。
  • 只有当列表中的所有项都是整数或浮点数时,all() 才会返回 True;否则,返回 False
  • 然后,我们使用不同的列表测试该函数并打印结果。

保存 numeric_lists.py 文件,并在终端中运行它:

python numeric_lists.py

你应该会看到以下输出:

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False

这个输出表明,check_if_all_numeric() 函数能够正确识别列表中的所有元素是否为数字。由于字符串列表中包含一个字符串,因此该函数返回 False

处理空列表

在这一步中,你将学习在使用 all()isinstance() 函数时如何处理空列表。空列表是指不包含任何元素的列表。正确处理空列表对于避免代码出现意外行为非常重要。

让我们修改你在前面步骤中创建的 numeric_lists.py 文件,在 check_if_all_numeric() 函数中添加对空列表的检查:

def check_if_all_numeric(data):
  """
  Check if all elements in the list are either integers or floats.
  Handle empty lists gracefully.
  """
  if not data:
    return True  ## An empty list can be considered as all numeric

  return all(isinstance(item, (int, float)) for item in data)

## Test cases
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]
empty_list = []

print(f"Integer list is all numeric: {check_if_all_numeric(integer_list)}")
print(f"Float list is all numeric: {check_if_all_numeric(float_list)}")
print(f"Mixed list is all numeric: {check_if_all_numeric(mixed_list)}")
print(f"String list is all numeric: {check_if_all_numeric(string_list)}")
print(f"Empty list is all numeric: {check_if_all_numeric(empty_list)}")

以下是我们所做的更改:

  • 我们在 check_if_all_numeric() 函数的开头添加了一个检查:if not data:。这用于检查列表是否为空。
  • 如果列表为空,我们返回 True。这是因为空列表可以被视为满足所有元素都是数字的条件(因为它没有非数字元素)。
  • 我们添加了一个 empty_list 测试用例。

保存 numeric_lists.py 文件,并在终端中运行它:

python numeric_lists.py

你应该会看到以下输出:

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False
Empty list is all numeric: True

如你所见,check_if_all_numeric() 函数现在可以正确处理空列表,并为它们返回 True。这使得你的代码更加健壮,在处理可能为空的列表时更不容易出错。

总结

在本次实验中,第一步着重于在 Python 中定义数字列表,涵盖整数列表、浮点数列表以及混合数字类型的列表。该过程包括创建一个 Python 文件 numeric_lists.py,并使用方括号和逗号分隔的值来填充列表定义。然后使用 print() 函数将这些列表显示到控制台,展示了如何创建和输出各种数字列表。

本次实验强调了 Python 中列表这一基础数据结构,以及它存储有序数字数据序列的能力。通过定义和打印不同类型的数字列表,包括整数列表、浮点数列表以及两者的组合,本次实验为在 Python 列表中处理数字数据提供了实用的入门指导。