python六大数据类型


不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

type() 方法可以判断数据的类型。

六大数据类型:

一.数字型(number)

int:整型
float:浮点型(有精度缺失问题)
bool:布尔类型:True False 真假/1和0(一定要大写)(Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加)
complex:复数类型(复数由实数部分和虚数部分构成,可以用 a + bi,或者 complex(a,b)表示, 复数的实部 a 和虚部 b 都是浮点型)
number用于存储数值不可改变的数据类型

Python运算符

二.字符串(string)

由数字、字母、下划线组成的一串字符

字符串截取

在Python中,可以使用切片操作来截取字符串。切片操作使用方括号 [],并且可以指定起始索引和结束索引来截取字符串的一部分。

  • 截取从索引位置0到索引位置3之前的字符:
string = "Hello, World!"
substring = string[0:3]
print(substring)  # 输出:Hel
  • ` 其中截至位置可省略,默认为最后末尾处,截取从索引位置2到字符串末尾的字符:
string = "Hello, World!"
substring = string[2:]
print(substring)  # 输出:llo, World!
  • 其中起始位置可省略,默认从0开始,截取从字符串开头到索引位置5之前的字符:
string = "Hello, World!"
substring = string[:5]
print(substring)  # 输出:Hello
  1. 截取从倒数第6个字符到倒数第1个字符之前的字符:
string = "Hello, World!"
substring = string[-6:-1]
print(substring)  # 输出:World
  1. 截取从索引位置1到索引位置9之间,每隔一个字符的字符:
string = "Hello, World!"
substring = string[1:9:2]
print(substring)  # 输出:el,W

字符串的索引默认是从0开始的,而结束索引是不包含在截取结果中的。

三.列表(List)

python的列表可以完成大多数集合类的数据结构实现。支持字符,数字,字符串甚至可以包含列表(即嵌套或者多维列表,可以用来表示多维数组)。PS:列表中的元素可以是重复的,且列表是有序的。

列表的创建

使用方括号“[]”来定义列表,或使用list[]创建列表,列表可以包含任意类型的元素,列表中的多个元素使用“,”隔开。

a = list[1,2]
b=[1,2]
print(type(a))
print(type(b))
<class 'types.GenericAlias'>
<class 'list'>

列表的相关操作

函数名效果
print(abc[0])直接按索引查询即可
列表名.sort()默认升序排列(永久更改元素顺序)(key:表示指定一个从每个列表元素中提取一个比较键。)
列表名.sort(reverse=True)降序排列(永久更改元素顺序)(列如,设置“key=str.lower”表示在排序时不区分字母的大小写)
列表名.append()向列表末尾添加元素
列表名.insert(位置,内容)在指定位置插入元素
del 列表名[]按照索引删除(del是一种操作语句)
列表名.pop()按照索引删除默认删除最后一个
列表名.remove(’’)删除指定内容,列表中没有指定内容会报错
列表名[1] = ‘d’按照索引更改指定内容
列表名.reverse()反转列表
print(len(列表名))获取表长
print(max(列表名))获取最大值,此时列表中仅能存在数值类型的元素,否则会报错
print(min(列表名))获取最小值,此时列表中仅能存在数值类型的元素,否则会报错
print(列表名.count())统计某元素出现次数
新列表名=列表名浅拷贝(修改一个会影响另一个)
新列表名=列表名[:]深拷贝(修改一个不会影响另一个)
新列表名= 列表名.copy()copy函数拷贝(修改一个不会影响另一个)
print(列表名.index())获取某元素索引(若有重复元素,index仅显示首次出现的索引位)
列表名.extend(列表名2)追加列表2至列表1的末尾
[1]+[2]列表拼接
[]*n将列表中的内容复制n次,添加至列表
列表名.clear()清空列表
abc=[7,3,4,5,1,2,6,8,9,10]
print(abc[0])#按照索引查找
print(abc[0:3])#输出前三格元素
print(abc[:])#输出所有元素
print(abc[::2])#步长为2,若为负数逆向取值
print(sorted(abc))#临时排序
abc.sort(reverse=True)#永久降序排序
abc.sort()#永久升序排序
abc.append('末尾添加')
abc.insert(3,'指定位置插入')
del abc[0]#按照索引删除,,一次删除一个del是操作语句
abc.pop(3)#按照索引删除,一次删除一个,默认删除最后一个
abc.remove('末尾添加')#删除指定内容,一次删除一个
abc[3]='按照索引更改指定内容'
abc.reverse()#反转列表
print(len(abc))#输出表长
print(abc.count(10))#统计元素出现次数
print(abc.index(2))#获取指定元素索引脚标,若有重复元素仅显示第一次出现的位置
bcd = ["b,c,d"]
abc.extend(bcd)#向abc列表末尾插入bcd列表
print(abc+bcd)#列表拼接
print([abc]*4)#复制n次列表中的内容并添加至列表
abc.clear()#清空列表

输出结果
在这里插入图片描述

四.元组(tuple)

python的元组类似于list列表,元组用 () 标识。内部元素(可重复且有序)用逗号隔开。但是元组不能二次赋值,相当于只读列表,虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表 可以将元组转化为列表更改元素
元组的索引、截取、拼接、重复与列表一样,可以通过索引访问元组的元素

元组中主要使用的函数:

函数效果
index()获取指定元素在元组内的下标
count()统计指定元素在元组内出现的次数
tu = (1,1,1,1,2,3,4,5,6,7,8,9)
print(tu.count(1))#统计元素出现次数
print(tu.index(1))#获取指定元素索引脚标,若有重复元素仅显示第一次出现的位置
4
0

可以使用拆包(unpacking)的方式将元组的元素赋值给多个变量。(任何可迭代对象均支持解包,其中字典解包后仅会提取key,不会提取value)

tu=(1,2,3)
a,b,c,=tu
print(a)
print(b)
print(c)
1
2
3
#或只需要一个变量例如我们只需要“c”
tu=(1,2,3)
_,_c,=tu#用“_”占掉我们不需要的元素
print(c)
3
#如果有大量无用元素,仅有少量所需则可以用*var-name的方法代表剩余的元素,在python里常用这种方法来代表不确定数量的参数
tu = (1,1,1,1,2,3,4,5,6,7,8,9)
a,b,*c=tu
print(a)
print(b)
print(c)
print(*c)#使用“*var_name”指代时打印时要带上*否则会以列表形式输出
print(type(c))
1
1
[1, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1 1 2 3 4 5 6 7 8 9
<class 'list'>

可以将元组作为整个参数输入函数
例如:divmod(a,b):a,b是两个数,这个函数返回一个元组,这个元组为(a//b,a%b),即返回

a除以b,a%b的结果组成的元组。
a=(100,10)
print(divmod(*a))#以元组形式输入参数时要在元组前加上“*”100

删除元组

tu = (1, 2, 3, 'a', 'b', 'c') 
del tu  # 因由于元组不可变,因此删除里面到元素,但可删除整个元组
print(tu)  # 此时打印会报错

创建元组的特殊规则

构造包含 0 个或 1 个元素的元组比较特殊,有一些额外的语法规则:
对于空元组直接用小括号或者tuple()表示,
对于1个元素的元组,则需要在元素后面添加逗号

a=()#创建一个空元组
b=tuple()#创建一个空元组
c=(1,)#创建只有一个元素的元组,需要在元素后面加一个逗号
d = (1,2,3)
e=tuple123#不能以该形式创建
print(type(a))
print(type(b))
print(type(c))
print(type(d))
<class 'tuple'>
<class 'tuple'>
<class 'tuple'>
<class 'tuple'>
f= (1)  # 如果使用小括号又不加逗号创建一个元素,这个是int型,不是元组
print(type(f))
<class 'int'>

五.集合(set)

python的集合(set)是由一个或数个形态各异的大小整体组成的无序整体,因此不能通过脚标取值,构成集合的事物或对象称作元素或是成员;基本功能是进行成员关系测试和删除重复元素

集合的创建

可以使用大括号 { }(仅用“{}创建集合时,集合中必须有内容”能传元组,集合,字典) 或者 set() 函数创建集合
即:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

集合的操作添加与删除

函数名作用
集合名.add()添加函数,添加单个元素
集合名.update()添加多个元素(可以是列表,元组,集合,字典等),元素间用“,”隔开或者更新集合,如果有重复的元素会自动舍去,只保留一个
集合名.pop()随机删除一个元素
集合名.remove()删除指定值,若集合中没有指定元素则会报错
集合.名clear()清空集合内容
del 集合名删除集合
a={1,1,1,2,5,3,5,4}}#集合中的元素不重复,好像还会自动排个序?
a.add(6)
a.update((7,8,9,9,9,9))#一次添加多个元素,添加形式可以是列表,元组,,集合字典等
a.pop()#随机删除一个元素,若为空集合会报错,但我测试下来好像默认删除第一个,
a.discard(3)#删除指定元素
a.discard(10)#如果不存在该元素也不会报错
a.remove(9)#删除指定元素,若不存在则会报错
a.clear()#清空合集内容
del a#删除合集
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{2, 3, 4, 5, 6, 7, 8, 9}
{2, 4, 5, 6, 7, 8, 9}
{2, 4, 5, 6, 7, 8, 9}
{2, 4, 5, 6, 7, 8}
set()

集合运算

函数表达式效果
S1 & S2 或 S1 . intersaction ( S2 ) 交集返回一个同时存在于两集合的元素的新集合
S1^S2 或S1.synmetric_difference ( S2 ) 反交集/补集返回一个两集合中不重复的元素的新集合,即去除两集合的相同元素
S1|S2 或 S1 . union ( S2 ) 并集返回一个包含两集合所有元素的新集合
S1 - S2 或 S1 . difference ( S2 ) 差集返回一个仅存在S1中的元素的集合,即去除S1中S2所含的元素
S1 <= S2 或 S1 . issubset ( S2 ) 子集测试如果 S1与S2相同或S1是S2的子集,返回 True ,否则返回 False 。可以用 S1<S2 判断S1是否是S2的真子集
S1 >=Т或 S2 . issuperset (S2) 超集测试如果 S1 与 S2 相同或 S1 是 S2 的超集,返回 True ,否则返回 False 。可以用S1>S2判断S1是否是S2的真超集
.isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
a={1,2,3,4,5,6,7}
b={1,2,3,"a,b,c"}
print(a&b)
print(a^b)
print(a|b)
print(a-b)
print(a<=b)
print(a>=b)
print(a.isdisjoint(b))
{1, 2, 3}
{'a,b,c', 4, 5, 6, 7}
{1, 2, 3, 4, 5, 6, 7, 'a,b,c'}
{4, 5, 6, 7}
False
False
False

六.字典(Dictionary)

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型;

列表是有序的对象集合
字典是无序的对象集合

字典的创建

使用花括号{}(仅创建空字典,有内容的化为集合)或dict()函数来定义字典,字典中的元素是键值对(key:value)的形式,由无序的索引(key)和它对应的值value组成

  • 可以通过键来访问、修改和删除字典中的值
  • 字典取值,字典当中的元素是通过键(key)来存取的,而不是通过偏移存取
函数效果
keys()获取字典中所有的键
values()获取字典中所有的值
  • 键(key)必须使用不可变类型(数字、字符串、元组)
  • 在同一个字典中,键(key)必须是唯一的

字典的添加与删除

注意事项

列表、元组、集合和字典都可以进行迭代操作,可以使用for循环遍历其中的元素。

列表和元组可以通过索引访问元素,索引从0开始,可以使用负数索引从末尾开始计数。

集合和字典是无序的,因此不能通过索引访问元素,可以使用特定的方法或键来操作其中的元素。

列表、元组和集合可以包含不同类型的元素,而字典的键可以是任意的不可变类型,值可以是任意类型。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值