IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Python的数据结构 -> 正文阅读

[数据结构与算法]Python的数据结构

1.整数与浮点数

Python里面的整数和数学里面的整数定义是一样的,Python里面的浮点数可以看作是数学里面的小数。

整数的加、减、乘可以直接在print中进行,也可以通过括号来改变运算的优先级:

>>> print(1-10)
-9
>>> print(3+2-5 * 0)
5
>>> print((3+2-5) * 0)
0
# 整数的除法和浮点数的加、减、乘、除运算
print(0.1 + 0.2)
print(1 / 3)
print(1 * 0.3)
print(0.1 + 0.2 - 0.3 * 0.4 / 0.5)

# 结果
0.30000000000000004
0.3333333333333333
0.3
0.06000000000000005

结果并不是0.3,而是一个很长的浮点数。这不是Python的问题,Java、C语言、C++等各种语言都有这个问题。这是由于计算机里面浮点数的储存机制导致的。有兴趣可以了解一下浮点数从十进制转化为二进制的原理和结果。
由于这个原因,不应该直接使用Python来进行精确的计算,但是进行日常的精度不高的四则运算是没有问题的

2. 变量

所谓变量,可以理解为一个存放其他数据的盒子。使用变量可以减少重复输入。

= 10=5= 2

变量在等号的左边,变量里面将要存放的值在等号的右边。等号是赋值的意思。将等号右边的值赋给左边的变量,这样变量里面的值就等于右边了。而如果等号的右边也是一个变量,那么就把等号右边的变量里面的值赋给等号左边的变量。
虽然在Python 3中可以使用中文作为变量名,但还是建议、将变量名设置为英文。

3.字符串、列表、元组

1)字符串(String)
在Python中,除了整数和浮点数外,还有字符串。任何被单引号或者双引号括起来的内容都可以认为是字符串。字符串也可以赋值给变量。

string_6 = '123'
int_variable = 123

字符串的内容可以是中文,可以是英文,可以是数字,可以是空格,可以是中文、英文、数字和空格的组合。

2)列表(List)
列表是Python里面的容器之一,由方括号和方括号括起来的数据构成。里面的数据可以是整数、浮点数、字符串,也可以是另一个列表或者其他的数据结构。列表里面的每一项叫作列表的一个元素,每个元素之间使用英文逗号隔开:

list_1 = [1, 2, 3, 4, 5] #列表里面有5个元素,全部是数字
list_2 = ['abc', 'x', '', 'kkk'] #列表里面有4个元素,全部是字符串
list_3 =[] #空列表
list_4 =[123, 'xyz', 3.14,[1, 2, 'yy']] #由多种元素组合起来的列表

3)元组(Tuple)
元组是Python里面的容器之一,由小括号和小括号括起来的数据构成。它的外型和列表非常像,只不过列表使用的是方括号,元组使用的是小括号。

tuple_1 = (1, 2, 3, 4, 5)#元组里面有5个元素,全部为数字
tuple_2 = ('abc', 'x', '', 'kkk')#元组里面有4个元素,全部是字符串
tuple_3 = () #空元组
tuple_4 = (123, 'xyz', [1, 't', 'z'], ('o', 'pp')) #由多种元素组合起来的元组

元组和列表的区别:列表生成以后还可以往里面继续添加数据,也可以从里面删除数据;但是元组一旦生成就不能修改。如果它里面只有整数、浮点数、字符串、另一个元组,就既不能添加数据,也不能删除数据,还不能修改里面数据的值。但是如果元组里面包含了一个列表,那么这个元组里面的列表依旧可以变化。

3.1 数据的读取

字符串、列表和元组。可以使用完全一样的方式从这3个数据结构中读取数据。
1)指定下标
在大多数编程语言里面,下标都是从0开始的,Python也不例外。第0个元素就是指最左边的元素。

# 在字符串中,第0个字符是“我”字,第1个字符是“是”字,以此类推。
example_string = '我是字符串'
# 在列表中,第0个元素是“我”字,第1个元素是“是”字,以此类推。
example_list =['我', '是', '列', '表']
#在元组中,第0个元素是“我”字,第1个元素是“是”字,以此类推。
example_tuple = ('我', '是', '元', '组')

在这3数据结构中,想取任何一个元素,都可以直接使用:
变量名[下标]
-1表示最后一个元素,-2表示倒数第2个元素,-3表示倒数第3个元素,以此类推。

2)切片操作
字符串切片以后的结果还是字符串,列表切片以后的结果还是列表,元组切片以后的结果还是元组。切片的格式为:
变量名[开始位置下标:结束位置下标:步长]

其中“开始位置下标”“结束位置下标”“步长”可以部分省略,但是不能全部省略。这3个参数对应的都是数字。切片的结果包括“开始位置下标”所对应的元素,但是不包括“结束位置下标”所对应的元素。

省略“开始位置下标”,表示从下标为0的元素开始计算。省略“结束位置下标”,表示直到最后一个元素且包含最后一个元素。例如:

>>> print (example_string[1:3])
是字
>>> print (example_list[:3])
我是列
>>>print (example_tuple[2:])
元组

省略“开始位置下标”和“结束位置下标”,“步长”取-1,表示倒序输出,例如:

>>> print(example_string[::-1])
串符字是我

3)拼接与修改
字符串,元组和列表之间可以相加,相加表示拼接起来。例如:

# 字符串
string_1 = '你好'
string_2 = '世界'
string_3 = string_1 + string_2
print(string_3)
# 元组
tuple_1 = ('abe', 'xyz')
tuple_2 = ('哈哈哈哈', '嘿嘿嘿嘿')
tuple_3 = tuple_1 + tuple_2
print(tuple_3)
# 列表
list_1 = ['abc', 'xyz']
list_2 = ['哈哈哈哈', '嘿嘿嘿嘿']
list_3 = list_1 + list_2
print(list_3)

#结果
你好世界
('abe', 'xyz', '哈哈哈哈', '嘿嘿嘿嘿')
['abc', 'xyz', '哈哈哈哈', '嘿嘿嘿嘿']

特别的,可以通过列表的下标来修改列表里面的值,格式为:
变量名[下标] = 新的值

列表还可以单独在末尾添加元素,例如:

list_4 = [' Python', '爬虫']
list_4.append('一')
list_4.append('酷')
print(list_4)

#结果
[' Python', '爬虫', '一', '酷']

元组和字符串不能添加新的内容,不能修改元组里面的非可变容器元素,也不能修改字符串里面的某一个字符。
字符串、列表和元组还有一些其他特性,它们之间的互相转化将在使用过程中逐渐了解吧。

4. 字典

字典就是使用大括号括起来的键(Key)值(Value)对(Key-Value对)。每个键值对之间使用英文逗号分隔,每个Key与Value之间使用英文冒号分隔。例如:

dict_1 = {'superman': '超人是一个可以在天上飞的两足兽', '天才': '天才跑在时代的前面,把时代拖得气喘吁吁。','xx': 0,42:  '42是一切的答案'}

Key可以使用中文、英文或者数字,但是不能重复。Value可以是任意字符串、数字、列表、元组或者另一个字典,Value可以重复。

可以通过Key来从字典中读取对应的Value,有3种主要的格式:

变量名[key]
变量名.get(key)
变量名.get(key,'在找不到key的情况下使用这个值')

使用方括号的方式来读取字典的Value时,一定要保证字典里面有这个Key和它对应的Value,否则程序会报错。使用get来读取,如果get只有一个参数,那么在找不到Key的情况下会得到“None”;如果get有两个参数,那么在找不到Key的情况下,会返回第2个参数。

如果要修改一个已经存在的字典的Key对应的Value,或者要往里面增加新的Key-Value对,可以使用以下格式:

变量名[key] = '新的值'

如果Key不存在,就会创建新的Key-Value对;如果Key已经存在,就会修改它的原来的Value。
需要特别注意的是,字典的Key的顺序是乱的,所以不能认为先添加到字典里面的数据就排在前面。

5. 集合

集合是使用大括号括起来的各种数据,可以看作没有Value的字典。集合里面的元素不能重复。集合也是无序的。

example_set = {1,2,3, 'a', 'b','c'}

集合最大的应用之一就是去重。例如,把一个带有重复元素的列表先转换为集合,再转换回列表,那么重复元素就只会保留一个。
由于集合与字典一样,里面的值没有顺序,因此使用集合来去重是有代价的,代价就是原来列表的顺序也会被改变。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:50:05  更:2022-03-04 15:54:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/10 2:18:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码