0%

Python基础之数据类型

数据类型是Python基本语法中非常重要的一部分,本文对集合、序列、字典这三大类数据类型做了部分总结。

集合类型及操作

  • 集合是多个元素的无序组合
  • 集合元素之间无序,每个元素唯一,不存在相同元素
  • 集合元素不可更改,不能是可变数据类型

1.集合的创建

1
2
3
4
5
6
7
8
#使用{}建立集合
A={"python",123,("python",123)}
#使用set()建立集合
B=set("pypy123")
print("输出结果如下:")
print(A)
print(B)
print({"python","123","123","python"})
image-20221026222311648

2.集合操作符

操作符及应用 描述
S|T 并,返回一个新集合,包括在集合S和T中的所有元素
S-T 差,返回一个新集合,包括在集合S但不在T中的元素
S&T 交,返回一个新集合,包括同时在集合S和T中的元素
S^T 补,返回一个新集合,包括集合S和T中的非相同元素
S<=T 或 S<T 返回True/False,判断S和T的子集关系
S>=T 或S>T 返回True/False,判断S和T的包含关系

3.集合处理方法

操作函数或方法 描述
S.add(x) 如何x不在集合S中,将x增加到S
S.discard(x) 移除S中元素x,如果x不在集合S中,不报错
S.remove(x) 移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear() 移除S中所有元素
S.pop() 随机返回S的一个元素,更新S,若S为空产生keyError异常
S.copy() 返回集合S的一个副本
len(S) 返回集合S的元素个数
x in S 判断S中元素x,x在集合S中,返回True,否则返回False
x not in S 判断S中元素x,x不在集合S中,返回True,否则返回False
set(x) 将其他类型变量x转变为集合类型
1
2
3
4
5
6
7
8
S={"s","f","e","h","g"}
print("输出结果如下:")
print(len(S))
print("s" in S)
print(S.pop())
print(S)#S中的元素"h"已经被取出
S.remove('s')
print(S)
image-20221026224237804

4.集合类型应用场景:数据去重

1
2
3
4
5
6
7
8
ls=["p","p","y","y",123]
#利用了集合无重复元素的特点
s=set(ls)
#将结合转化为列表
lt=list(s)
print("输出结果如下:")
print(s)
print(lt)
image-20221026224557362

序列类型及操作

  • 序列是具有先后关系的一组元素
  • 序列是一维元素向量,元素类型可以不同
  • 元素间由序号引导,通过下标访问序列的特定元素
  • 序列是一个基类类型,主要发展为以下三类:
    • 字符串类型
    • 元组类型
    • 列表类型

1.序列处理操作符与函数

其同样适用于字符串类型、元组类型、列表类型

  • 6个操作符

    操作符及应用 描述
    x in s 如果x是序列s的元素,返回True,否则返回False
    x not in s 如果x是序列s的元素,返回False,否则返回True
    s + t 连接两个序列s和t
    s*n 序列s复制n次
    s[i] 索引,返回s中的第i元素,i是序列的序号
    s[i:j] 或 s[i:j:k] 切片,返回序列s中第i到j以K为步长的元素子序列
  • 5个函数

    函数 描述
    len(s) 返回序列s的长度,即元素个数
    min(s) 返回序列s的最小元素,s中元素需要可比较
    max(s) 返回序列s的最大元素,s中元素需要可比较
    s.index(x) 或 s.index(x,i,j) 返回序列从i开始到j位置中第一次出现元素x的位置
    s.count(x) 返回序列s中出现x的总次数
    1
    2
    3
    4
    s=[1,9,3,4,5,2,7,8,9,10]
    print("输出结果如下:")
    print(s[0:4])
    print(s.index(9,2,8))
    image-20221026230659752

2.元组类型及操作

  • 元组是序列类型的一种扩展

  • 元组是一种序列类型,一旦创建就不能被修改

  • 使用小括号()tuple创建,元素间用逗号,分割

    1
    2
    3
    4
    5
    6
    s="helloworld"
    print("输出结果如下:")
    #使用tuple创建
    print(tuple(s))
    #使用()创建
    print(('s','s','y'))
    image-20221026231303489

3.列表类型及操作

  • 列表是序列类型的一种扩展,创建后可以随意被修改

  • 使用方括号[]或list创建,元素间用逗号,分隔

  • 列表中各元素类型可以不同,无长度限制

  • 列表类型的操作函数

    函数 描述
    ls.append(x) 在列表ls最后增加一个元素
    ls.clear() 删除列表ls中所有的元素
    ls.copy() 生成一个新列表,赋值ls中所有元素
    ls.insert(i,x) 在列表ls的第i位置增加元素x
    ls.pop(i) 将列表ls中第i位置元素取出并删除该元素
    ls.remove(x) 将列表ls中出现的第一个元素x删除
    ls.reverse() 将列表中ls的元素反转
    del ls[i:j:k] 删除列表ls中第i到j以k为步长的元素
    1
    2
    3
    4
    5
    6
    7
    8
    ls=[9,1,2,3,4,5,6,7,8]
    del ls[0:2:1]
    print("输出结果如下:")
    print(ls)
    ls.insert(3,"s")
    print(ls)
    ls.reverse()
    print(ls)
    image-20221026233245494

4.字符串类型及操作

  • 字符串的序号

    image-20221027124853404
    1
    2
    3
    s="python is a romantic language"
    #字符反转
    print(s[::-1])

    结果如下:

    image-20221027130050044
  • 字符串处理函数

    函数 描述
    str(x) 任意类型所以对应的字符串形式
    hex(x) 或 oct(x) 整数x的十六进制或八进制小写形式字符串
    chr(u) u为Unicode编码,返回其对应的字符
    ord(x) x为字符,返回其对应的Unicode编码
    1
    2
    3
    #打印十二星座对应的字符
    for i in range(12):
    print(chr(9800+i),end=" ")
    image-20221027091451848
  • 字符串处理方法

    方法 描述
    str.lower() 或 str.upper() 返回字符串的副本,全部字符小写/大写
    str.split(sep=None) 返回一个列表,有str根据sep被分隔的部分组成
    str.replace(old,new) 返回字符串str副本,所有old子串被替换成new
    str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选
    str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符
    str.join(iter) 在iter变量除最后元素外每个元素后增加一个str,此方法也适用于列表,返回的是字符串类型
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    s="helloworld"
    print("输出结果如下:")
    print(s.upper())
    print(s) #返回了大写的副本,原来的字符串s并没有被改变
    s_new=",".join(s)
    print(s_new)
    print(type(s_new))#说明使用str.join(iter)返回的类型是一个字符串
    print(s_new.split(","))
    print(type(s_new.split(",")))#说明使用str.join(iter)返回的类型是列表
    print(s.center(20,"="))
    image-20221027100523337
  • 字符串类型的格式化

    : <填充> <对齐> <宽度> <,> <. 精度> <类型>
    引导符号 用于填充的单个字符 <: 左对齐;<: 右对齐;^: 居中对齐 设定输出位宽 数字的千位分隔符 浮点数小数精度 或 字符串最大输出长度 整数类型:b,c,d,o,x,X;浮点数类型:e,E,f,%
    1
    print("小明的数学成绩是{1:=^20.2f},英语成绩是{0:*>20.2f},语文成绩是{2:#<20.2f}".format(98.773,97.273,96.094))

    image-20221027102813322


字典类型及操作

  • 字典类型是“映射”的体现
  • 键值对:键是数据索引的扩展
  • 字典是键值对的集合,键值对之间无序
  • 采用大括号{}dict创建,键值对用冒号:表示

1.字典的创建

1
2
3
4
5
6
7
8
9
#用{}创建
d={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
print(d)
#用dict创建
lis = [('name', 'Jack'), ('age', 18), ('height', 180)]
print(dict(lis))
#创建空字典
de={}
print(type(de))

结果如下:

image-20221027110024611

2.字典处理函数及方法

函数或方法 描述
del d[k] 删除字典d中键k对应的数据值
k in d 判断键k是否在字典d中,如果在返回True,否则False
d.keys() 返回字典d中所有的键信息
d.values() 返回字典d中所有的值信息
d.items() 返回字典d中所有键值对信息
d.get(k,default) 键k存在,则返回相应值,不在则返回default值
d.pop(k,default) 键k存在,则取出相应值,不在则返回default值
d.popitem() 随机从字典d中取出一个键值对,以元组的形式返回
d.clear() 删除所有键值对
len(d) 返回字典d中元素的个数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#定义一个空字典d
d={}
#向d新增2个键值对元素
d["a"]=1
d["b"]=2
print(d)
#修改第2个元素
d["b"]=3
print(d)
#判断”c"是否是d的键值
print("c" in d)
#计算d的长度
print(len(d))
#随机从字典d中取出一个键值对,并以元组形式返回
print(d.popitem())
print(d)
#通过键返回相应值,但字典d并没有被改变
print(d.get("a"))
print(d)

结果如下:

image-20221027111632810
欢迎来到ssy的世界