python知识总结--常用数据结构

Updated on with 0 views and 0 comments

python有六种常见的数据结构:

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

根据数据结构特性划分:

image.png

一、Number(数值)

Python3支持int、float、bool、complex(复数)几种类型的数值

intfloatboolconplex
11.0True/False1+j

数值类型的基本操作

A=3,B=2

  • 加法 C=A+B #5
  • 减法 C=B-A #1
  • 乘法C=A*B #6
  • 除法C=A/B #1.5
  • 取余C=A%B #1
  • 取整C=A//B #1
a = 3
b = 2
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a//b)
print(a%b)

二、String(字符串)

  • 字符串是字符的有序序列,它可以使用+、*运算,他是不可变的数据类型
  • 使用单引号、双引号和三引号可以声明
  • "r"字符串变为原始字符串
  • "\"为转义字符

2.1 声明字符串

# 声明字符串
var1 = 'hello'
var2 = "hello"
var3 = '''你好'''
var4 = """你好"""
print (var1)
print (var2)
print (var3)
print (var4)

2.2 字符串截取

python可以使用[]截取字符串

语法 字符串变量[startIndex:endIndex]

startIndex默认为0,为0时从字符串左侧开始截取,为-1时从右侧开始截取

endIndex默认为字符串长度-1

str = "012345"
print(str[:]) 
print(str[:6])
print(str[0:])
print(str[0:6])
print(str[-4:])

输出结果为

image.png

2.3 转义字符

使用\声明一个转义字符

转义字符作用描述
\续行符
\反斜杠符号()
'单引号
"双引号
\n换行
\t横向制表符
\r回车
\a响铃
\b退格
\000或\0
\v纵向制表符
\f换页
\0yyyy是两个八进制数,\012表示换行
\xyyyy是两个十六进制数,\x0a表示换行
\otherother是除以上列举的其它字符,其它字符则以普通格式输出

2.4 字符串常用操作

操作解释
分割str1.split(str2),以str2为分隔符,分割str1
替换str1.replace(str2,str3)将str1中的字串str2替换为str3
大写str.upper()将字符串转为大写
小写str.lower()将字符串转为小写
拼接str1.join(str2)将str2中的每个字符以指定的字符串str1拼接组成一个新的字符串
格式化输出格式化操作

格式化操作符如下:

符 号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址
str1 = "helloworld"
str2 = "hello"
print(str1.split("o"))
print(str1.replace("world","long"))
print(str1.upper())
print(str1.lower())
print("-".join(str1))
name = "龙"
age = 199
print("我的名字是%s,年龄是%d" % (name,age))

2.5 字符串运算

a = Hello,b=Python

操作符描述实例
+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果e
[ : ]截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。a[1:4] 输出结果ell
in成员运算符 - 如果字符串中包含给定的字符返回 True'H' in a 输出结果 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True'M' not in a 输出结果 True
r/R可以避免输出转义字符print(r'\n')
print(R'\n')
输出结果为\n

三、 List(列表)

列表是一个有序的数据结构,其中的元素可以为任意类型,可以随时修改数据

3.1 声明一个列表

列表声明使用[]操作符,其中的元素使用,分割

list1 = [1,2,3,"4"]
print(list1)

3.2 新增元素

函数作用
append()list.append(item),将元素item添加至列表list尾部
insert()list.insert(item,index),将元素添加至列表list指定位置
extend()list.extend(obj),将可迭代对象obj的每个元素逐个插入列表尾部
list1 = [1,2,3,4]
list1.append(5)
print(list1)
list1.insert(0,0)
print(list1)

list2 = [6,7]
list1.extend(list2)
print(list1)

3.3 删除元素

函数作用
pop()list.pop(index)删除指定位置元素,index默认是最后一位元素
remove()list.remove(obj)删除给定的第一个出现的obj元素
list1 = [1,2,3,4]
list1.pop()
print(list1)
list1.pop(0)
print(list1)
list1.remove(3)
print(list1)

3.4 查找

函数作用
index()list.index(obj)返回给定元素obj第一次出现位置的下表
list1 = [1,2,3,4]
print(list1.index(1))

3.5 排序

函数作用
sort()list.sort( key=None, reverse=False)
对列表排序默认升序排列
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序
  • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)
list1 = [6,2,3,4]
list1.sort()
print(list1)

list1.sort(reverse = True)
print(list1)

3.6 逆序

函数作用
reverse()list.reverse()将列表中的元素进行逆置
list1 = [1,2,3,4]
list1.reverse()
print(list1)

3.7 列表运算

Python 表达式结果描述
len([1, 2, 3])3长度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合
['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复
3 in [1, 2, 3]True元素是否存在于列表中
for x in [1, 2, 3]: print(x, end=" ")1 2 3迭代

四、 Tuple(元组)

元组也是一个有序的序列,一但被创建,无法更改。

4.1 声明一个元组

元组数据使用小括号包裹,各个元素之间用,分割,若元组只有一个元素,则元组末尾要加,标识符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

4.2 元组截取元素

与list一致,使用[startIndex:endIndex]操作

4.3 元组运算

Python 表达式结果描述
len((1, 2, 3))3计算元素个数
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)连接
('Hi!',) * 4('Hi!', 'Hi!', 'Hi!', 'Hi!')复制
3 in (1, 2, 3)True元素是否存在
for x in (1, 2, 3): print x,1 2 3迭代

五、 Dictionary(字典)

字典有以下特性:

  • 字典由两部分元素组成-键和值,所以字典元素也被称为键值对
  • 字典访问速度比列表快
  • 字典由一对花括号包裹,元素由逗号隔开
  • 字典的值可以是任意类型,但是字典的键不可变且唯一的,字典是一个无序的结构

5.1 声明一个字典

dict = {'a':1,'b':2}
print(dict)

5.2 添加元素

操作作用
dict['key']=value向字典添加元素,若键已存在,则更新值
dict = {'a':1,'b':2}
print(dict)
dict['a'] = 3
print(dict)
dict['c'] = 4
print(dict)

5.3 获取字典元素

操作作用
dict.get('key',default=None)获取键对应的值,若键不存在返回设置的默认值
dict.items()返回一个包含所有键值元组的列表
dict.keys()返回一个所有键组成的列表
dict.values()返回一个所有值组成的列表
dict = {'a':1,'b':2}
print(dict.get('a'))
print(dict.get('c',"不存在"))

print(dict.items())
print(dict.keys())
print(dict.values())

5.4 更新字典

操作作用
update()dict.update(dict1)根据dict1更新dict
dict = {'a':1,'b':2}
dict1 = {'a':3,'c':4}
dict.update(dict1)
print(dict)

5.5 删除元素

操作作用
dict.pop(key)删除并返回key的对应值
dict.popitem()随机删除并返回一个键值对
dict.clear()清空字典
dict = {'a': 3, 'b': 2, 'c': 4}
print(dict.pop('a'))
print(dict)

print(dict.popitem())
print(dict)

dict.clear()
print(dict)

六、 Set(集合)

集合的特点:

  • 集合中的元素是唯一的
  • 集合由一个花括号包裹,元素之间用逗号隔开

6.1 声明一个集合

空集合使用set()标明,不能直接使用{},因为{}表示一个空字典

# 声明一个集合
set1 = {1,2,3}
print(set1)

#声明一个空集合
set2 = set()
print(set2)
#使用set()声明集合
set3 = set([1,2,3,4])
print(set3)

6.2 添加元素

操作作用
set.add(obj)添加元素,若元素已经存在则不做任何操作
set.update(obj)添加对象可以是列表、字典等,且可以是多个,用逗号隔开
set1 = set([1])
# 添加元素
set1.add(2)
print(set1)

# 添加列表
set1.update([3,4],[5,6])
print(set1)

# 添加元组
set1.update((3,4),(7,8))
print(set1)

# 添加字典
set1.update({'a':1},{'b',9})
print(set1)

6.3 删除元素

操作作用
set.remove(obj)删除指定元素obj,obj不存在会抛出异常
set.discard(obj)删除指定元素obj,obj不存在不抛出异常
set.clear()清空集合
set.pop()随机删除一个元素
set1 = {1,2,3,4,5,6}
# 删除元素
set1.remove(1)
print(set1)
set1.discard(1)
print(set1)
# 随机删除元素
set1.pop()
print(set1)
#清空集合
set1.clear()
print(set1)

6.4 集合运算

操作作用
set1 & set2求交集,得到集合中两个相同的元素
set1 ^ set2求对称差集,得到两个集合中不同的元素
set1 I set2求并集,得到两个集合所有的元素
set1 - set2求差集,set1中包含而set2不包含
set1 = set([1,2,3,4])
set2 = set([3,4,5,6])
# 交集
print(set1 & set2)

#并集
print(set1 | set2)

#差集
print(set1 - set2)

#对称差集
print(set1 ^ set2)

标题:python知识总结--常用数据结构
作者:wenyl
地址:http://www.wenyoulong.com/articles/2024/04/17/1713360572260.html