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的世界