geekdoc-python-zh/docs/pythonland/27.md

5.3 KiB
Raw Permalink Blame History

Python 数据类型

原文:https://python.land/python-data-types

在这一节中,我们仔细看看最重要的 Python 数据类型。Python 为我们提供了几种原生数据类型来存储和处理数据。这些都是你需要很好了解的基本构件。当考虑一个问题时,解决方案的一部分通常是选择正确的数据类型。了解每种数据类型的能力将使选择正确的数据类型变得容易得多。

目录

基本和高级 Python 数据类型

我们区分基本类型和更高级的数据结构。Python 中的基本数据类型存储单个值比如一个数字或一段文本。Python 中的基本数据类型有:

接下来,我们有更高级的 Python 数据类型。它们可以存储许多项目,如项目列表或键值对:

这些类型都有与众不同的特征。例如,范围可以快速有效地计算,元组不能修改(而列表可以),集合允许您进行数学集合计算。

Python 中的可变性

Python 数据类型可以分为两类:可变的不可变的。或者更准确地说:可洗的和不可洗的。如果我们可以改变一个对象持有的数据那么它就是可变的如果我们不能改变它那么它就是不可变的。Python 中不可变数据类型的示例有:

可变的 Python 数据类型有:

为什么以及什么时候数据类型是可变的?

我们还没有深入研究所有这些类型,但是让我们以一个列表为例。在不知道具体细节的情况下,我可以告诉你,你可以在列表中添加更多的项目,删除项目,并替换它们。对于一个列表来说,这些并不奇怪,对吗?所以一个列表是可以改变的;因此它是可变的。

Thank you for reading my tutorials. I write these in my free time, and it requires a lot of time and effort. I use ads to keep writing these free articles, I hope you understand! Support me by disabling your adblocker on my website or, alternatively, buy me some coffee. It's much appreciated and allows me to keep working on this site!

然而,整数只是一个数字,就像 2、3 和 4 一样。你不能改变一个数字;事情就是这样。我几乎能听到你现在在想什么。"但是我可以改变一个 Python 变量,即使它是一个整数!"你是对的,但是那是不同的东西。

让我们看一个例子我们将字符串“hello”赋给一个名为mystring的变量,然后更改它:

>>> mystring = 'hello'
>>> mystring =  'world'

我们现在做的是给一个变量重新赋值。我们没有改变字符串“hello”本身。

还有另外一种解释。一个变量指向计算机内存中的一个点。这就是我们所说的指针。在第一个实例中,mystring 指向内存中存储字符串“hello”的位置将mystring改为“world”后它指向内存中存储单词“world”的另一个位置。我们没有改变字符串“hello”。'

事实上,我们可以通过执行以下操作来证明这一点:

>>> mystring = 'hello'
>>> mycopy = mystring
>>> mystring =  'world'
>>> print(mycopy)
'hello'

我们创建了指向字符串“hello”的第二个变量。当我们将mystring改为指向一个不同的字符串时,我们仍然可以引用之前的字符串,因为mycopy也指向hello字符串在内存中的位置。

例如,这不同于列表。如果变量mylist指向内存中的一个列表结构,而我们改变了那个列表,它仍然指向同一个列表结构。我们所做的只是改变列表结构本身(它的内容)。Python 不替换列表,而是修改它。

如何检查 Python 数据类型?

Python 中有一个名为type的内置函数,可以用来检查数据类型。让我们来看看type在工作中的一些例子:

>>> type(3)
<class 'int'>
>>> type('hello')
<class 'str'>
>>> type([1,2,3])
<class 'list'>

如果你正在 REPL 中做实验,type是一个有价值的函数,它可以让你更深入地了解引擎下发生了什么!