引入
我们学习变量是为了让计算机能够记忆事物的某种状态,而变量的值就是用来存储事物状态的,很明显事物的状态是分成不同种类的(例如水的液态,气态和固态),所以变量值也应该有不同的类型
一、数字类型 int(整型) float(浮点型) 不可变数据类型
int,整型,是没有小数点的数字,包括正整数、负整数和零,支持大部分算术运算符(如加、减、乘、除和取模等),并且提供了多种常用的方法来对整数进行操作(如求绝对值、判断奇偶性、向下取整、向上取整等)。
float,浮点型,与整数不同,浮点数可以包含小数部分,Python 的 float 类型默认使用 64 位双精度浮点数格式 IEEE 754,这使得它可以表示非常大和非常小的数字,以及非常接近零的数字。
支持许多基本的算术和比较运算符,例如加减乘除、取余和等于、不等于、大于、小于和大于等于等运算符,但需要注意,由于浮点数是带有舍入误差的二进制数字,因此可能会产生一些奇怪的行为,例如“0.1 + 0.2 != 0.3”。所以在涉及到精度和舍入问题的场景下,通常使用 Decimal 类型而不是 float 类型。
知识补充:
IEEE 754是一种二进制浮点数算术标准,通常用于在计算机上存储和处理浮点数。该标准规定了浮点数的表示方法、舍入方式以及基本的算术和比较操作。
二、字符串 str 不可变数据类型
str,字符串,用于表示文本字符串,值可以是任意长度的字符序列,包括字母、数字、符号和空格等。广泛应用于文本处理、文件输入输出、Web 开发、网络通信和数据科学等领域。
str 类型支持许多基本操作,例如切片、索引、合并、长度计算和转换为大写或小写等操作。除了基本操作外,Python 还提供了许多内置方法和函数来处理字符串,例如字符串格式化、分割、替换、比较和搜索等;还可以使用正则表达式和标准库中的 re 模块进行高级字符串操作,例如模式匹配和提取等。
三、列表 list 可变数据类型
list,列表类型,用于表示有序的可变集合,可以包含任意数量的元素(可以是不同类型的数据),并且可以根据需要添加、删除和修改其中的元素。适用于存储和操作有序的元素集合。在实际编程中,我们通常会经常使用 list 来完成诸如数据处理、算法实现、Web 开发和科学计算等任务。
list 支持许多基本操作,例如索引、切片、合并、长度计算等。可以使用中括号语法来创建一个新的 list 对象,并在其中插入零个或多个元素。除了基本操作外,Python 还提供了许多内置方法和函数来处理 list,例如排序、反转、追加、计数、移除和清空等。还可以使用切片和列表生成式等高级特性来执行复杂的 list 操作,例如筛选出符合一定条件的元素、将元素按照一定规则进行排列等。
知识补充:
在 Java 和 C# 中,与 Python 中的 list 类似的数据类型叫做数组(Array),用于表示一组有序的元素,每个元素可以是任何数据类型。数组在创建时需要指定其长度,之后可以通过下标访问或修改其中的元素。
在 JavaScript 中,list 被称为数组(Array),也是一种有序的集合类型,允许存储任意数量的元素,并且支持动态扩展和收缩。JavaScript 数组还提供了丰富的内置方法和函数,例如 push、pop、shift、unshift、splice 等,可用于实现复杂的元素操作和算法。
在 PHP 中,与 list 类似的概念是数组(Array),也是一种有序的集合类型,支持存储各种数据类型的元素。PHP 数组还提供了大量的内置函数和方法,例如 sort、array_merge、array_filter、array_slice 等,可用于对数组进行排序、合并、筛选、切片等操作。
虽然不同编程语言中可能使用不同的术语来描述相似的概念,但大多数编程语言都具备一种用于表示有序集合的数据类型。
四、元组 Tuple 不可变数据类型
Tuple,元组是一种不可变的有序集合类型,类似于列表(List),但无法进行修改,创建元组后就无法添加、删除或更改其中的元素。元组使用小括号来表示,其中包含多个用逗号分隔的元素,例如:x=(1,2,3) 就是一个元组,也可以省略括号 x=1,2,3。通常用于存储不变量的值,例如程序的常量、枚举值、多返回值等。
元组支持许多与列表相似的操作,例如索引、切片、拼接和长度计算等。可以通过下标或切片访问元组中的元素,但不能对其中的元素进行修改。
元组作为不可变对象,在程序执行时占用的内存较少,因为元素的数量和类型事先已知,并且无需额外的空间用于动态分配或扩展数组。此外,元组还可以用作字典中的键或集合中的元素,而列表不行。
*!如果元组内只有一个值,则必须加一个逗号,否则()就只是包含的意思而非定义元组 !*
知识补充:
在C++和C#等语言中,有时会使用std::tuple或std::pair类型来表示元组的词汇。与Python元组类似,这些数据类型提供了所有元素不可更改的区域,因此您可以安全地传递它们作为参数或返回值而不必担心数据丢失或意外修改数据。
在Java等一些语言中,与Python元组类似的概念是数组。在这些语言中,数组是一种可以保存任何对象的有序的集合类型,可以使用括号或方括号来创建。数组通常也具有固定长度,一旦数组对象被创建以后,将无法添加或删除元素。
在JavaScript中,也有形成元组函数如Object.freeze(),用于冻结对象并保持其状态不变。
虽然不同编程语言中可能会使用不同术语来描述相似的概念,但大多数编程语言中都具备一种用于表示不可变、有序元素集合的数据类型。
五、字典 dict 可变数据类型
dict,字典类型,是一种无序的集合类型,用于存储键值对,可以看作是键-值(key-value)映射表,其中每个键唯一地映射到一个值。这些键和值可以是任何可哈希(hashable,即不可变且具有唯一标识符)的 Python 对象。
使用大括号 {} 或者 dict() 函数创建一个空的字典,例如:x = {‘a’:a,'b':b} 或 x = dict(a='a',b='b') 。
字典还提供了丰富的内置方法和函数,可用于实现复杂的关联数组操作、搜索、遍历和排序等功能。例如,可以使用 keys() 方法获取所有键,values() 方法获取所有值,items() 方法获取所有键值对等。
知识补充:
在C++中,可以使用STL库提供的map或unordered_map来实现类似字典的结构。map是红黑树实现的一种数据结构,因此插入、删除和查找操作的复杂度为O(log n),而unordered_map则是哈希表实现的一种数据结构,其平均复杂度为常数时间,具有更快的速度。
在Java中,与Python中字典类似的结构被称为HashMap或者Hashtable。这些结构提供了常数时间进行增、删、改和查找操作,并且可以通过key来获取对应的value。
在JavaScript中,对象(Object)就是一种将字符串索引映射到任意值的集合,它非常类似于Python中的字典。对象既可像字面量那样直接创建,也可以通过构造函数(new Object())创建。
虽然不同编程语言中可能会使用不同术语来描述相似的概念,但大多数编程语言中都具备字典/映射/关联数组这种基于键值对的数据结构来存储数据。
六、集合 set 可变数据类型
set,集合是一种无序、可变的集合数据类型,它类似于列表和元组,但是不允许存在重复的元素(元素必须是不可变对象,不允许重复故而重复元素只会保留一个)。
可以使用大括号 {} 或者 set() 函数来创建一个空集合,例如:s = {1,2,3,4} 或 s = set({1,2,3,4}) 。
*!需要注意的是: d = { } # 默认是空字典 而 s = set( ) # 这才是定义空集合 !*
set 对象支持许多内置方法和运算符,允许我们对其中的元素进行添加、删除、查找、交集、并集、差集等操作。需要注意的是,由于 set 是无序的,因此在遍历 set 时会按照元素添加的顺序进行输出。另外,set 还可以用于比较运算符(例如 <、> 和 <=)和集合运算符(例如 | 和 &),这些运算符通常也适用于其他容器类型。
知识补充:
C++ 中没有原生的 set 数据类型,但是STL(标准模板库)提供了 set 类,它以红黑树作为内部实现,也可以用于存储和操作一组无序元素,而且不允许重复元素。C++ 11 还引入了 unordered_set 类,它基于哈希表实现,效率更高。
Java 提供了 HashSet 和 TreeSet 类,这两个类都实现了 Java 中的 Set 接口,可以用来存储和操作一组无需元素,而且也不允许重复元素。其中 HashSet 是基于哈希表实现的,而 TreeSet 基于二叉树实现的。
JavaScript 中的 Set 对象也是一种类似于 Python set 的数据结构,可以存储一组唯一的无序元素。Set 显然是一个更通用的类型,因为 JavaScript 对象本身就是键值对的集合,而 Set 只是将这种数据结构推广到了所有数据类型上。
Python set 类型在其他编程语言中可能具有相似的实现或者对应的数据结构,但是由于每种语言的特点和设计理念不同,因此具体实现和使用方法可能会有所不同。
结尾添加一个概念:可变与不可变类型
不可变类型:数字(int, long, float, complex 等)、字符串(str 类型)、元组(tuple 类型)、布尔值(bool 类型)
可变类型:列表(list 类型)、集合(set 类型)、字典(dict 类型)
在 Python 中,变量分为可变和不可变两种类型,可变类型指的是在创建后仍然可以更改这个对象本身的值、状态或内容的数据类型,而不可变类型则相反。
对于不可变类型,一旦创建之后就不能更改了。因此,如果重新分配或对其进行任何修改操作,都将创建一个新的对象。而对于可变类型,每次修改都将直接修改原始对象,不会创建新的对象。因此,在处理大型数据或需要频繁修改内容时,使用可变类型可以提高代码的运行效率。
需要注意的是,或某些情况下,不可变类型的变量也可能发生改变,例如在使用+=、*= 和-/ = 等“增强赋值”运算符时。在这种情况下,Python 解释器实际上创建了一个新的对象,并将其覆盖到变量的原始位置。因此,确保了不可变类型变量值保持不可变的唯一方法是不要向变量分配新值。
待加...
标签:set,Python,元素,数据类型,元组,了解,类型 From: https://www.cnblogs.com/Cai-jia-hui/p/17402020.html