首页 > 编程语言 >python中的数据类型-适合新手-比较完善(写了好久……)

python中的数据类型-适合新手-比较完善(写了好久……)

时间:2024-07-23 21:26:25浏览次数:12  
标签:python 数据类型 元组 比较完善 dict print 列表 my

作者的话

        首先,我先申明,以下思路仅为个人理解,如有不同,望指导,谢谢。

        数据类型它是什么,有什么用,怎么用就是它的全部内容,知识框架串联起来之后就是这三部分内容,没有什么特别的东西就只是单纯的可以培养这个习惯,之后就可以很轻松的学习使用之后串联的全部知识,当一次一次的深入学习,这个框架下的东西也就越来越丰富,底层的知识也就理解的越深。

基本数据类型的拆分理解

数字类型(number)

整型(int)

按照数学思维的理解就是整数,包含正整数、负整数、0;

使用python中的type函数可以写下如下内容

num1 = 0
num2 = -5
num3 = 5

print(type(num1))  #  打印: <class 'int'>
print(type(num2))  # 打印: <class 'int'>
print(type(num3))  # 打印: <class 'int'>

浮点数(float)

用数学思维的理解,就是有小数点的数字,如:1.0    、  -1.0

字符串(string)

        字符串,“其串如其名”,单个字符串联在一起就是字符串了,算了,不开玩笑了,打住了,下面才是真的定义。

        字符串是由字符组成的序列,能用单引号', 双引号",三引号''' 或者  """的形式定义它。

我上面说的单个字符其实也可以理解为字符串,当使用单引号‘1’,此时他就是字符串,python中是字符串类型,c语言中则是有字符类型和字符串类型,它们是分开的,有一些细分的差别。

        

# 使用单引号
string1 = 'Hello, World!'

# 使用双引号
string2 = "Python is so nice!"

# 使用三引号,可以包含多行
string3 = '''这是
一个多行字符串'''

string4 = """另一个
多行字符串"""


上面是字符串的定义操作,接下来该了解一下它的其他相关操作了,上代码

1.字符串串联


# 字符串之间的串接
name = 'Bob'
age = '25'
message = 'Hi, my name is ' name +' and I am ' age + 'years old.'
print(message)

2.多次打印同一个字符串

string = "Python"
re_string = string * 3
print(re_string)  # 打印: Python Python Python 

3.字符串的切片

代码中的的string[2:7]是指从下标(索引)为2到7,2为起始,7为末尾,就像数学的区间一样,左闭右开。[2, 7)

string = "HelloWorld"
sub_string = string[2:7]
print(sub_string)  # 打印: lloWo

        还有很多操作,就不进行一一列举了,pycharm是个好东西,你可以在尝试使用字符串操作时,使用它提出的补全的各种函数,编程要更深理解自然是需要自己手打出来的。

列表(list)

首先,还是先从是什么,有什么用,怎么用,这三个思路思考问题,然后在进行学习

列表是一种有序且可变的数据类型,有序(指的是有一定顺序),可变(指的是元素可变);

列表可以存储不同类型的元素,包括整型、字符串、列表、元组、字典、集合等主要的数据类型

列表的特点:

1.列表具有有序性:

列表中的元素按照他们添加的顺序进行存储,并且可以通过索引访问特定位置的元素;还有一个小点就是下标起始为0.

   my_list = [10, 20, 30, 40, 50]
   print(my_list[0])  # 打印: 10

2.列表具有可变性:

可以对列表进行修改,对元素进行增删改查

   my_list = [1, 2, 3]
   my_list.append(4)  # 在末尾添加元素,4
   my_list[1] = 5  # 修改第二个元素,让第二个元素的值改为5
   del my_list[0]   # 删除第一个元素,1
   print(my_list) # 打印列表,[5, 3, 4]

3.列表可以包含重复元素

它因为可以包含重复的元素,就可以存放学科成绩,可以实现重复的成绩,有着集合不具有的有点,可以根据索引查询,但是它有顺序,集合没有顺序,索引如果要通过它实现随机分配等问题,就需要使用其他的一些模块使用这些模块定义的函数方法

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

4.列表推导式

详细可以看我以前的一篇博客,总之推导式唯一的作用,就是能够简洁代码;

python中的推导式-CSDN博客

然后对列表的一些操作无外乎就是增删改查,比如把外部数据添加到里面用append、extend、insert等,把列表内部的数据进行删除,根据索引进行删除pop,还可以直接删除对应的数据使用remove 、del等方式,然后修改就是根据索引进行修改,查询的话就是用索引返回对应的值index函数就行。

元组(tuple)

        我对元组的理解就是一种特殊的列表,只是他的元素不可变,但是可以是用下面的方法实现对元组的改变,但是本质并不是对元组进行改变。

元组的特点:

1.元组具有有序性

2.特殊之处*不可变性*

元组的特殊就特殊在他是不可变的,以便用于保存固定参数,适合使用在需要固定的地方,避免因为地址的错误访问出现问题。

而且元组刚好是因为不可变的,因此可以使用它作为字典的key,列表是不可以的,而python的优点就在于使用它进行一些数据的分析操作,列表是可变的,正好用来存储数据,而又需要一定的可靠存储空间,使用元组就刚好,而且元组的不变性可以带来一些性能的优势,特别在涉及大量数据和频繁的操作时,还有可以使用元组用来打包函数返回的值等等。

创建元组

# 使用这样的方法创建单个元素的元组
my_tuple = (1,)

# 使用特殊的方法实现对元组内部的修改
my_tuple_2 = (1, 2, 3, 4, [1, 2, 3, 4])
my_tuple_2[4][0] = 0
print(my_tuple_2)  # 打印修改了列表的元组

创建好元组了就需要对元组进行一些操作(也就是怎么用元组的问题),比如访问元组的元素。

访问方法与列表是相同的,按照索引查找即可,但还会关联到异常的内容,比如访问超出序列范围的索引就会触发IndexError

my_tuple = (10, 20, 30, 40, 50)

# 访问第一个元素
print(my_tuple[0])  # 打印: 10

# 访问第三个元素
print(my_tuple[2])  # 打印: 30

# 如果尝试访问超出范围的索引会引发 IndexError,还有另一类KeyError 他们呢作为LookupError的子类
# print(my_tuple[5])  # 会报错

# 可以使用负值索引从末尾开始访问
print(my_tuple[-1])  # 打印: 50
print(my_tuple[-3])  # 打印: 30

字典(dictionary)

字典,简称dict,但是不建议直接使用dict作为标识符,因为他算是pycharm中的一个关键字,命名需要规范一点,相应的这些数据类型除了number都是关键字不建议使用作为标识符,尤其是这些数据类型可以进行强转,如果用错了,就会把数据类型改变,导致出现各种错误。

好,还是先从字典的定义开始,字典是一种无序的键值对数据结构。

它用来干什么?它用于将键(通常是唯一且不可变的数据类型,如字符串、数字或元组)与值(可以是任何数据类型,包括列表、字典、函数等)关联起来。比如应用于存储和快速查找具有关联关系的数据,比如学生学号和姓名,商品ID和价格,身份证等。

定义字典的方式

花括号 {键:值}来创建字典

方式一我用的比较多,也许是我能力不足,达不到使用其他方式的资格

方式二与方式三我用的甚至算是很少,方式三更是我第一次使用,发现自己在写博客的时候,知识点越写越多,我自己的知识网络也更加清晰,写这些对自己也是一个提升,都看到这里了,确定不点个赞吗,不点赞也行,记得收藏,我发现很少有其他人的博客会像我写这么多纯粹自己的理解,很多都是知识点一一罗列完就没有了,收藏一下以后想找也方便,毕竟这个平台的想找到合适的的内容感觉确实不易。

# 方式一
my_dict_1 = {'key1': 'value1', 'key2': 'value2'}
print(my_dict_1)
# 方式二
my_dict_2 = dict(key1='value1', key2='value2')
print(my_dict_2)
# 方式三
key_value_pairs = [('key1', 'value1'), ('key2', 'value2')]
my_dict_3 = dict(key_value_pairs)
print(my_dict_3)

然后就到了怎么用字典了,代码示例:

# 创建字典:
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# 访问字典中的值,通过键来获取对应的值
print(my_dict['name'])  # 打印: Alice
# 通过键修改字典中的值:
my_dict['age'] = 26
# 添加新的键值对
my_dict['job'] = 'Engineer'
# 删除键值对
del my_dict['city']
# 打印字典
print(my_dict)  

查字典自然也是有方法的,查新华字典是查询,查询python字典也是查询,那他们有什么不同?自然就需要你去试试了。

还有一些返回相关键或值抑或是键值对的方法,例如keys(),values(),items()等方法,各有各的形式吧,而且当使用for循环遍历字典时,也是很好用的。

集合(set)

集合,相比都不陌生了,从初中学到大学,它是什么也就无须多言了,但也请不要小看他,如果要理解它在python中是什么的话,那它就是一个特殊的数据容器。

# 直接创建
my_set = {1, 2, 3}
# 由列表强转创建
my_list = [1, 2, 2, 3, 3, 3]
my_set_from_list = set(my_list)  
print(my_set_from_list) # {1, 2, 3}

集合的特点:

1.集合的元素唯一,集合中的元素不会重复

2.集合内部无序

那,就说说为什么它这么重要吧,它具有什么让他的地位如此之高?

1.数据去重,当现在有一个数据容器存放着大量的数据,可以将他快速转化为集合从未找出唯一项。

2.可以快速判断某数据是否在集合中,仅仅需要使用in运算符判断一下就可以。

3.集合之间的运算(交并补等运算),在处理不同数据集合之间的关系很好用,不至于想不到解决办法,毕竟其他方法哪怕再复杂,也有集合给你兜底,就像一个老大哥一样。

# 并集 使用 | 运算符
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2  # 或者 set1.union(set2)
print(union_set)  # 打印{1, 2, 3, 4, 5}
# 交集 使用 & 运算符
intersection_set = set1 & set2  # 或者 set1.intersection(set2)
print(intersection_set)  # 打印 {3}

基本数据类型的关系的理解

基本数据类型的关系大致分为两类 :组合数据类型 、可变数据类型与不可变数据类型

可变数据类型与不可变数据类型

为什么存在?因为内存的管理要求分为这两个类型;

不可变类型由于需要保证数据一致性和安全性而诞生,例如配置参数、常量值等等。

不可变类型由于它具有固定性,可以被共享和缓存重用,从而节省内存。其中比较明显的就是缓存重用,因为缓存的存在,还需要经常清除缓存,可以说有利有弊。

可变数据类型由于python本身自己需要强大的开发效率,需要进行大量的数据分析,因此必须有这种数据站出来顶住数据分析的重任,例如缓存、数据集合等。

可变类型则适用于动态修改的大量数据结构,通过避免让对象频繁的创建和销毁以节省内存,相应的控制数据的规模需要存储实际需要的数据。举个例子,不如在使用列表时,不要每次都创建一个列表,可以在原列表进行一定的操作。

这个分类就是由内存决定的,只需要从内存的角度考虑这个问题,他的本质区别就在这里了。

这两者最本质的区别在于:

内存中的那块地址所存储的值是否可以被修改

最离谱的就是,他的可不可变刚好与内存地址的改变相反

变数据类型:变量的值改变,地址不会

不可变数据类型:变量的值改变,地址

组合数据类型

        是什么:在Python中,组合数据类型(也称为复合数据类型)是指可以包含其他数据类型的数据结构。

        常见的组合数据类型包括列表(list)、元组(tuple)集合(set)和 字典(dictionary)。

        有什么用:这些数据结构能够将多种类型的数据组织在一起,是的数据处理和操作更加灵活和便捷。

        组合数据类型有以下几个优点:

1.组织数据:能够将相关数据组合在一起,形成一个有组织的结构,使得数据管理更加方便。比如根据需求可以把列表变成集合,可以把字典转换成列表。相对于基本数据类型只能表达式单一的数据,组合数据类型就明显可以操作比基本数据类型所能处理的复杂的多的数据结构。

2.灵活性:可以包含不同类型的数据,比如一个列表可以包含整数、字符串、甚至其他列表等数据。

3.代码简洁:通过组合数据类型,可以减少代码的复杂度,提高代码的可读性和可维护性。如果通过转换数据类型的话,很多需求就可以很轻松的解决了。

4.操作简单:组合数据类型提供了很多的内置方法,可以很方便的进行数据的增删改查,自然是显而易见了。

        怎么用

使用集合的操作,需要存储和操作一组不重复的元素时,可以用set

有序数据集合:用列表或者元组

键值对映射:需要用键值对时,可以用dict

最关键的是,嵌套结构,当需要表示复杂的嵌套数据结构,可以组合起来用,比如处理Json数据或者树形结构的时候。

关于强制转换问题

数据类型之间的转换并不是可以随意转换的,需要遵守一定规则,

1.数字类型:  

        整数转浮点数,可以随意转

        浮点数转整数,直接转换会截断小鼠点后面对数据,建议使用round()函数四舍五入

2.字符串与数字类型:

        字符串转数字,需要让字符串内数据全部是数字,否则会抛出异常,无法转换

        数字转字符串的话就可以随意了

3.组合数据类型:

        列表、元组、集合之间的话,可以通过相应的函数转换,但需要注意元素的类型和数据,不然还是会抛出异常,不过简易初学者的话,还是多敲一敲,多见一见异常,见多了之后就自然知道是哪里的问题了

        字典类型就比较特殊了,他是键值对结构,不太好弄,其实这篇博客,我学到了创建字典的第三种方式可以通过第三种方式,把字典转换成列表和元组,也可以把键值对分别遍历出来,然后再多一步,转换的过程。

# 定义一个字典
my_dict = {'a': 1, 'b': 2, 'c': 3}

# 字典转列表
# 列表元素为键值对组成的元组
dict_to_list = list(my_dict.items())
print("字典转列表:", dict_to_list)  # 打印: [('a', 1), ('b', 2), ('c', 3)]

# 字典转元组
# 元组元素为键值对组成的元组
dict_to_tuple = tuple(my_dict.items())
print("字典转元组:", dict_to_tuple)  # 打印: (('a', 1), ('b', 2), ('c', 3))

# 字典转集合
# 集合元素为字典的键
dict_to_set = set(my_dict.keys())
print("字典的键转集合:", dict_to_set)  # 打印: {'a', 'b', 'c'}
# 集合元素为字典的值
dict_value_to_set = set(my_dict.values())
print("字典的值转集合:", dict_value_to_set)# 打印{1, 2, 3}

感谢观看,如有问题,随时评论或私信,如有帮助感激不尽。

标签:python,数据类型,元组,比较完善,dict,print,列表,my
From: https://blog.csdn.net/2301_80304567/article/details/140566695

相关文章

  • 090、Python 写Excel文件及一些操作(使用xlwt库)
    要写Excel文件,我们需要使用第三方库。xlwt库是一个常用的写Excel的第三方库,它同时支持.xls和.xlsx。要使用第三方库,首选需安装:pipinstallxlwtxlutils安装完成后,我们就可以引入库来进行相关操作了。使用xrwt库写Excel文本,可以按以下步骤操作:1、第一步:创建工作簿(Wor......
  • python每日学习:numpy库的用法(上)
    python每日学习10:numpy库的用法(上)下载numpy库pipinstallnumpy检测环境是否安装importnumpyimportnumpyasnpa=np.arange(10)print(a)array创建数组名称描述dtype数组元素的数据类型,可选copy对象是否需要复制,可选order创建数组的样式,C为行方向,F为列方向,A......
  • 西门子 PLC 的基本数据类型
    西门子基本数据类型有:STEP7的基本数据类型总共有7种,分别为:位(bit)、字节(Byte)、字(Word)、双字(DoubleWord)、整型数(INT)、双整型数(DINT)以及实数(REAL)。1.位(bit)取值:1、0寻址方式:地址标识符+字节地址+位地址。图1基本数据类型:位(bit)2.字节(Byte)8位二进制数组成一个字节。其中,第0位......
  • 用Python玩转Excel的五大功能!
    在数据分析和处理的过程中,Excel一直是备受欢迎的工具。然而,手动操作Excel既费时又容易出错。幸运的是,Python可以让你高效且智能地操作Excel文件,极大提升工作效率。那么,如何用Python玩转Excel呢?  Python可以为我们提供哪些强大的功能来处理Excel文件,使得我们的数据处理工作更......
  • Python贝叶斯、transformer自注意力机制self-attention个性化推荐模型预测课程平台学
    全文链接:https://tecdat.cn/?p=37090原文出处:拓端数据部落公众号 分析师:KungFu近年来,在线课程凭借便捷的网络变得越来越流行。为了有更好的用户体验,在线课程平台想要给用户推荐他们所感兴趣的课程,以便增大点击率和用户黏性。解决方案任务/目标根据学生所选的历史课程,预测出......
  • 知识清单|Python入门必备基础知识点
    1.数据类型和变量1.1缩进和注释的规则Python使用缩进来表示代码块,通常使用四个空格或一个制表符。注释使用#开头。1.2基本数据类型Python支持多种基本数据类型,包括整数、浮点数、字符串、布尔值和空值。1.3变量的动态类型和赋值Python是动态类型语言,变量可......
  • Redis-10大数据类型理解与测试
    Redis10大数据类型我要打10个1.redis字符串(String)2.redis列表(List)3.redis哈希表(Hash)4.redis集合(Set)5.redis有序集合(ZSet)6redis地理空间(GEO)7.redis基数统计(HyperLogLog)8.redis位图(bitmap)9.redis位域(bitfield)10.redis流(Stream)官网地址Redis键(key)常......
  • 使用 Python 进行 A/B 测试
    使用Python进行A/B测试的简介A/B测试,也称为拆分测试,是一种统计方法,用于比较网页、电子邮件、产品等的两个版本,以确定哪个版本效果更好。目标是改善用户体验、参与度、转化率或其他关键指标。Python是一种流行的编程语言,用于实现A/B测试,因为它具有广泛的数据分析库和灵活......
  • Python返回类型注释
    声明函数时,我们应该使用返回注释吗?defgenerate_nine()->int:return9或者我们可以简单地这样写:defgenerate_nine():return9Python中的返回类型注解对代码的功能没有直接影响,但它们提供了几个重要的好处:优点:增强可读性:......
  • Python - 检查签名注释是否属于特定类
    使用forsigininspect.signature.parameters.items():ifisinstance(sig[1].annotation,inspect._empty):print("empty")时,我从来没有让控制台说打印“空”。即使在if子句之前使用print(sig[1].annotation)时给出的输出是:<class'inspect._e......