python数据类型

22 阅读6分钟
  • Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
  • 等号(=)用来给变量赋值。
  • 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

Python3 中常见的数据类型有:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个): Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个): List(列表)、Dictionary(字典)、Set(集合)。

数据类型

数字

  • 在python中,数据类型有六种:数字、字符串、列表、元组、集合和字典;

方法

int(): 强制转为为int类型,向下取整
float(): 强制转化为float类型:

字符串

python中,字符串可以使用单引号、双引号以及三引号表示: 字符串拼接:

  1. 使用+可以将不同字符串拼接成为一个新字符串
  2. 注意: 如果字符串+数字,要报错。需要对数字进行类型转化
大小写转化
capitalize()   第一个单词首字母大写
title()        每一个单词的首字母大写
upper()        将所有字母转大写
lower()        将所有字母转小写
居中:
center(宽度,填充)       将字符串在给定范围居中

统计:
count()         统计字符串中字符出现的次数

编码:
字符串->字节码: encode(编码格式)  xxx.encode('GBK')
字节码->字符串: decode()    xxx.decode('GBK')

判断是否以xx字符结束: endswith()
判断是否以xx字符开始: startswith()
判断是否为数字: isdigit()  isnumeric()
判断是否为字母: isalpha()
判断是否为字母或者数字: isalnum()
判断是否为大写或者小写: isupper()  islower()


字符串拆分:
找字符串中的某个字符: 
index()   返回被查找的字符下标(索引),如果没找到抛出valueerror异常
find()    返回被查找的字符下标,如果没找到返回-1
rindex()  找最后一次出现的字符索引,找不到报错
rfind()   找最后一次出现的字符索引,找不到返回-1


以某个字符拆分字符串:split(字符)  返回以拆分字符前后的字符串为元素的列表
替换字符串中的字符: replace(old,new,count)  可以指定替换次数

去除字符串前后字符串(默认空格和换行): strip()
string="    hello world\n"
     string.strip()    去除空格和换行
     string=“1abdc1”
     string.strip('1')    去除前后的字符‘1’
     

字符串切片:
获取字符串中的内容:
string = "1234567890"
按索引获取指定字符:string[4] ==>5
按反方向通过索引获取指定字符:string[-6]==>5
获取连续的字符串:string[起始索引:结束索引+1]   左闭右开[起始,结束)

步长:string[start:end:step]  通过指定step的值,确定取值方式
字符串反向输出:string[::-1] ==> '0987654321'

列表

列表可以看出一个容纳所有类型数据的容器。列表不限制大小,且内容可以随时被修改。
列表有长度,有下标(索引)

列表定义:
li = [] 或者 li = list()  创建一个空列表
列表拼接:
li3 = li1+li2  => [1,2,3,'a','b','c']

列表的方法:
向列表中添加元素:
append():将目标整体作为一个元素添加到指定列表中
li1.append(li2) ==> [1,2,3,[4,5,6]]
extend():将目标按迭代顺序分别放入列表中。
li1.extend(li2) ==> [1,2,3,4,5,6]
insert(索引,元素)   在指定位置插入数据
li2.insert(1,55) ==> [4,55,5,6]

删除数据:
pop() : 默认移除最后一个元素,也可以按索引移除元素
remove() : 按元素名称移除元素

查找索引位置:
index()    效果跟字符串相同,如果没找到报错

统计:
count()    统计列表中元素出现次数,与字符串count不同在于字符串可以指定范围

排序:sort()
li.sort() ==> [1,2,3,4,5,6]
li.sort(reverse=True) ==> [6,5,4,3,2,1]

反向:reverse()
li.reverse() ==> [5,1,4,6,3,2]

清空:clear()  将列表中所有元素删除
li.clear() ==> []

浅复制: copy()
li1=li.copy()  将外层列值赋值给li1.


切片
li=[1,2,3,4,5,6,7]
元素获取:
li[5] ==>6
li[-3] ==> 5
修改元素的值:
li[索引]=值
li[0]=11 ==> [11,2,3,4,5,6,7]

获取多个元素:
li[起始:结束+1]     左闭右开
li[:4] ==> [1,2,3,4]
li[1:] ==> [2,3,4,5,6,7]
步长:
li[起始:结束+1:步长]  间隔几个元素获取

元组

元组与列表有相似的部分,元组中可以放入任意数据类型,元组也有下标(索引),不同之处子在于,元组一旦被创建,不能改变(不能对元组进行修改、添加、删除)。

元组创建:
tup=(元素1,元素2,...)
tup = (1,2,3)   创建后不能被修改

拼接:
tup = tup1+tup2     使用+,生存新的元组

方法:
统计元素出现次数
count() 
   tup.count(3)
查找元素所在的索引
index()
   tup.index(3)

切片:
与列表相同:

集合

以大括号定义的容器,其中可以放入数字和字符串类型,但集合中不允许出现重复数据(自动去重复)
集合是无序的容器。不能通过下标获取元素
集合不能使用+拼接。

定义:
s=set()     定义空集合
s={1,'a'}
s = set(变量)   类型强转

集合拼接
s1 = {1,2,3}
s2 = {3,4,5}
取并集:
print(s1|s2)      # | 并集 & 交集 ^ 对称差集
通过方法update()
s1.update(s2)
print(s1)

集合方法:
向集合添加元素: add()
清空集合        clear()
删除元素:       
               pop()   默认移除第一个元素,不能添加参数
               remove(元素)   按元素名称移除元素
拼接集合        union()  update()
               s.union(s1)  s.update(s1)

集合中元素获取一般通过遍历(循环取值)

字典

在python中,字典是以键值对方式保存数据,定义是通过大括号,字典无序,所有的数据获取通过键完成。键不能重复。
字典也不能通过+拼接

定义
di = {} | di = dict()     创建空字典
di = {key:value,key1:value1,key2:value2}

拼接
di1 = {1:'a',2:'b'}
di2 = {3:'c',4:'d'}
di1.update(di2)
print(di1)


方法
添加元素:
update()
setdefault() 第一个功能,当键不存在时,向当前字典添加新键值对,第二个功能,当键存在时,返回该键所对应的值。
fromkeys(可迭代数据,值) 将可迭代数据逐个拆分,作为键,每个键都有相同的值。返回新字典

查找元素
get(键)   通过键找值
setdefault(键,值)  当键存在时,返回原值
keys()    返回所有键的对象,取值前需要类型强转
dict_keys(['a', 'b', 'c'])
values()  返回所有的值的对象,需要强转
dict_values([1, 2, 3])  
items()   返回所有的键值对对象,需要强转
dict_items([('a', 1), ('b', 2), ('c', 3)])

删除元素:
pop(键)      按键删除键值对
clear()    清空

查看键对应的值:
print(di[键]) 等价于di.get(键)
对字典进行数据添加:
di[键]=值    di[2]='bb' 
删除键值对:
del di[键]
删除字典:
del di