前面了解到了什么是基础数据类型中的数值型,现在我们继续来认识一下何为序列类型
在本篇中主要讲解一些关于序列类型的基础知识,主要对其基本用法的一些了解,对于一些序列类型的更多方法会在后面的篇章中讲到。
目录
前言
在python中除了数值类型还有序列类型,所谓序列类型其实就是可以存储多个数据的一种数据类型,一般的序列类型都有它的索引。
一、可变类型与不可变类型的定义
1.1 可变数据类型
所谓可变数据类型其实就是值在发生改变的时候,内存地址不变,但是原值在变。
比如给一个数据分配了一个空间并给了一个初值,你能够在这个空间里面直接去修改它的值,说明这是可变的。
我们常见的可变数据类型有:列表、字典、集合
1.2 不可变数据类型
所谓不可变的数据类型其实就是修改值的时候,它的内存地址也发生了改变,从而产生了新的值
我们常见的不可变数据类型有:字符串、数字、元组
二、不可变类型
2.1 字符串 str
字符串主要是以单引号、双引号、三引号括起来的任意文本,主要用来记录文本信息,其中的引号主要是用来表示字符串这个数据类型的,并不是字符串的一部分。
name = '小廉' # 定义一个name变量,将"小廉"赋值给name,这里的"小廉"就是一个字符串
print(name)
字符串只能用于相加和相乘的运算,其中相加相当于拼接。
# 相加进行拼接
a = 'abc'
b = 'efg'
print(a+b)
# 相乘进行多次输出
a = 'abc'
print(a*5)
2.1.1 转义字符\
主要用于一些特殊的输出
\n 表示换行
\t 表示制表符(相当于tab键,空格)
\\ 表示\
\‘ 表示一个’
如果要输出带引号的文本,就需要用到转义字符了。如下,
print('I\'m 小廉') # 其中如果不加\,系统就分辨不出来谁是引用内容,从而发生报错
>>I'm 小廉
2.2 数字 (int float)
这里的数字包含了整型和浮点型,都属于不可变的类型
2.3 元组 tuple
元组就是一组数据的集合,其中的数据是只能去访问而不能去改变其值的。
元组的表示通常使用一对小括号(),如下便是元组的表示
content = () # 设置一个空元组
content2 = (1,2,3,4,'小廉') # 初始化一个元组
print(type(content)) # 查看其类型
print(content2) # 输出元组
# 输出的值
>> <class 'tuple'>
>> (1, 2, 3, 4, '小廉')
进程已结束,退出代码0
元组本身不可变,但如果元组包含其他可变的元素,那些可变元素可以改变。
对于元组来说,其实并不需要小括号也是可以的,但是必须得有逗号进行分隔,就算只有一个元组,也要用逗号进行分隔。如下,
cont = "石昊","石毅","秦昊" # 初始化一个元组
cont2 = ('大表哥',) # 只有一个元素的元组
print(cont)
print(type(cont)) # 查看类型
print(cont2)
print(type(cont2)) # 查看类型
# 输出值
>> ('石昊', '石毅', '秦昊')
>> <class 'tuple'>
>> ('大表哥',)
>> <class 'tuple'>
进程已结束,退出代码0
三、可变类型
3.1 列表 list
列表就是一组有序且可变的数据集合。
因为列表是可变的,所以更加方便的在原数据上面进行个别数据的修改。
列表的创建,以及初始化如下所示:
lst = [] # 创建一个空列表
name_lst = ['小廉','石昊','石毅','秦昊',100] # 初始化一个列表
print(type(lst)) # 查看类型
print(name_lst) # 输出值
>> <class 'list'>
>> ['小廉', '石昊', '石毅', '秦昊', 100]
进程已结束,退出代码0
在上面的代码中其实也不难发现,python相比于传统的C语言来说更加灵活多变,在一个列表中存储的值不一定只是同一个类型,也可以存储其他数据类型,比如上面存储了字符串和整型。
3.2 字典 dict
字典主要是用于保存一些具有对应关系的数据类型,主要采用键值对的方式来存储数据
键值:键就是key,值就是value
键值对表示如下:
‘xx’:‘xxxxx’
key:value
创建字典如下:
dic1 = {} # 创建一个空字典
# 给字典里面初始化赋值,注意每一个键值对都要用逗号隔开
dic = {'name':'石昊','age':18,'hobby':'战斗'}
print(type(dic1)) # 查看类型
print(dic)
>> <class 'dict'>
>> {'name': '石昊', 'age': 18, 'hobby': '战斗'}
进程已结束,退出代码0
现在我们知道了如何创建一个字典,但是我们又该如何通过键值对去访问呢?
其实只需要通过,字典名[key]就可以去访问value啦
dic = {'name':'石昊','age':18,'hobby':'战斗'}
# 通过键值对的方式去访问值
print(dic['name'])
print(dic['age'])
print(dic['hobby'])
>> 石昊
>> 18
>> 战斗
进程已结束,退出代码0
明白如何去访问值之后,我们又会关心如何去修改值?
其实修改值也非常容易,直接通过,字典名[key]=value就可以修改咯
下面可以很清楚的看到value的修改
dic = {'name':'石昊','age':18,'hobby':'战斗'}
dic['name'] = '小廉' # 修改字典的'name'值
print(dic['name'])
>> 小廉
进程已结束,退出代码0
3.2.1 注意事项
- 字典是无序的,没有下标,可以通过键来取值
- 字典是不重复的,字典的键如果相同,就取最后一个重复键的值
- 字典的值是可以改变的,根据键改变值
3.3 集合 set
集合就是一组不重复、且无序的一组数据集合。
集合的表示如下,
在这里有一个注意点,在初始化集合的时候,必须使用set(),因为大括号{ }表示字典。
cont = set() # 定义一个空集合
cont2 = {2,4,5,1,2,3} # 给集合初始化值
print(type(cont)) # 查看类型
print(cont2) # 输出值
>> <class 'set'>
>> {1, 2, 3, 4, 5}
进程已结束,退出代码0
从上面代码不难发现,虽然初始化的集合是无序且有重复项的,但是在你输出集合的时候,它就会输出有序且无重复的集合。
虽然集合本身是可变数据类型,但其实它是不能存储可变数据类型的,只能存储不可变数据类型。如以下操作都是错误的:
{{‘xx’:xx}} 报错
{【xxx,xxx】} 报错
{{1,2,3}} 报错
集合其实是没有下标的
3.3.1 集合的作用
- 存储非重复的数据
- 将序列类型进行去重(比如去重列表元素)
3.3.2 集合的数学运算
运算符操作 | python运算符 | 含义 |
---|---|---|
交集 | & | 取两集合公共的元素 |
并集 | | | 取两集合全部的元素 |
差集 | - | 取一个集合中另一集合没有的元素 |
成员运算 | in和not in | 判断一个某个元素是否在或者不在集合中 |
具体案例如下:
set1 = {1,2,3}
set2 = {4,5,6,1,2}
print(set1&set2) # 输出两个集合的交集
print(set1|set2) # 并集
print(set1-set2) # 输出set1中去除set2的元素
print(set2-set1) # 输出set2中去除set1的元素
print(1 in set1) # 看1是否在set1中
print(7 not in set2) # 看7是否不在set2中
>> {1, 2}
>> {1, 2, 3, 4, 5, 6}
>> {3}
>> {4, 5, 6}
>> True
>> True
进程已结束,退出代码0
总结
在本篇文章中只是简单介绍了除数值类型的其他几种基本数据类型,对于每一种数据类型其实都有各自的方法,对于各自的方法在具体实验中会大有用处,本篇先不做讲解,想要了解更多数据类型的方法可以看我后面更新的文章。
总体来说,python正是因为有了这些基本数据,才会让数据更好的存储以及访问,在实际例子中,这些类型也会经常用到。