python数据结构及方法

本文详细介绍了Python中的基础数据结构,包括列表的取值、操作方法如append、sort,字典的创建、更新和遍历,元组的创建以及集合的相关运算。还涵盖了内置生成式和散列值的概念。
摘要由CSDN通过智能技术生成

基本结构

字符串 整数 布尔 浮点

列表(List)

列表中正序排列的索引从0开始, 倒序从-1开始

列表的取值

  1. 列表变量[索引值]
  2. 范围取值 列表变量[起始索引:结束索引]。左闭右开

index

查找列表的某个元素位置 List.index(查找的内容)

len

获取长度 len(list)

reverse

列表反转 list.reverse()

sort

列表排序 list.sort(recerse) //参数为Ture代表降序排序

append

列表新增 list.append(新元素) //列表末端插入新元素

insert

列表指定位置插入 list.insert(索引, 新元素)

列表赋值

列表指定赋值 list[索引] = 新值
列表范围赋值 list[起始索引:结束索引] = 新列表

remove

列表删除指定元素 list.remove(元素) //删除指定元素

pop

列表删除指定索引list.pop(索引) //按索引删除

count

列表查询元素出现的次数 list.count(元素) //返回元素出现的次数

extend

列表添加元素是数组是 展开添加 list.extend(要添加的列表)

查询列表中是否存在

查询某一项是否在列表中 元素 in list //返回布尔值
判断两个列表是否属于🙆‍♂️内存 list is list

clear

列表的清空 list.clear()

copy

列表复制 list.copy()

列表的遍历

for item in list:
	print(item)

字典(dict)

创建字典两种方法

1.声明式 {}
2. dict函数

字典方法

formkeys

dict.formkeys(key列表, 默认值) //创建这些key 值为None

字典取值

字典取值 dict[key] 或者 dict.get(key, 默认值) 没油找到默认值

in

判断某一个值是否存在与字典中 key in dict

遍历dict

遍历dict: for key in dict:
便利 dict: for key, value in dict.items()

字典更新

//字典更新操作 有则该 无则加
字典更新 dict[key] = value
字典更新 dict.update = (key = value, key = value)//多个赋值

字典更新

字典删除 dict.pop(key)
字典删除最后一个 dict.popitem() //返回的是删除的

clear

清空字典 dict.clear()

字典设置默认值

字典设置默认值,如果存在key忽略,不存在设置 dict.setdefault(key, value)

获取字典的试图

1.keys获取所有key
2.values 获取所有的value
3.items获取所有健值对
利用字典格式化字符串

emp = {name: '123', grade: 'c', hiredate: '2013-09-08'}
//老版
emp_str = "姓名:%(name)s,评级:%(grade)s,入职时间,%(hiredate)s" %emp
新版
emp_str1 = "姓名:{name},评级:{grade},入职时间:{hiredate}".format_map(emp)

元组(tuple)

元组是不可变的列表
元组用的是小括号,列表使用的是方括号
列子

(5,6,7) + (8,9,10)
输出 (5,6,7,8,9,10)
(1, 2) * 2
输出(1,2,1,2)

元组的创建

	a = (1, 2, 3)
	a1 = 1, 2, 3, 4
	a2 = (1 ,)  //当只有一个值的时候 如果没有逗号表示不是元组

元组的方法
tuple[索引]
tuple[起始索引, 结束索引] //范围取值

如果元组中有列表或者字典是可修改里面的值
列表与元组的区别

数字序列range

	range(起始,结束, 步长)

序类型转换

	l1 = ['a', 'b', 'c']
	t1 = ('a', 'b', 'c')
	s1 = 'abc123'
	s2 = 'abc, 123'
	r1 = range(1, 4)
	//list转换
	l2 = list(t1)
	//str函数转为字符串
	str(l1)

集合

可以看作为没有value的字典
集合的特点:1集元素是无序的 2集合元素不能重复 3集合是可变的 4集合允许数字运算 5集合是分散存储的
集合的创建

	l1 = {1, 2, 3}
	l2 = set()

方法

set()内置函数从其他数据结构转换

	l2 = set([1,  2, 3]) //将数组转为集合{1, 2, 3}
	l3 = set('str1') //{s, t, r}

集合关系与数字运算(交集 并集 差集)

	l1 = {1, 2, 3}
	l2 = {1, 2, 3, 4}
	//交集
	l0 = l1.intersection(l2)   //{1, 2, 3}. 获取两个集合重复的部分 新建一个集合
	l1.intersection_update(l2) //更新原始集合 l1没有的
	print(l1)  //{1, 2, 3, 4}
	//并集
	l1.union(l2) // {. 1, 2, 3, 4 }
	//差集
	l1.difference(l2) //{4}得到l1在l2中不存在的部分
	l1.symmetric_difference(l2) //双方互相的差集
	

集合间的关系操作

	# ==判断两个集合是否完全相同
	# l1.issubset(s4) //判断l1是否为l2子集
	# l4.issiperset(s3) //s3是否是s4的父级
	#l1.isdisjoint(l2)  //判断两个集合是否存在重复元素 返回ture不存在 false存在有

集合的遍历

	for c in l1:
		print(c)
	# 集合不支持按索引查找

集合添加元素

add

l1.add(元素)

update方法 添加多个元素

	l1.update([7, 8])

删除元素

discard

remove

	//更新先删除在添加
	//如果删除不存在的元素会报错
	#discard(元素)如果遇到不存在的元素 会被忽略
	l1.discard(元素)
	l1.remove(元素)

内置生成式

列表生成式

	lst = []
	for i in range(20, 30):
		lst.addend(i)
	lst = [i   for i in range(10, 20)] //[20, 21, 22, 23, 24, 25, 26, 27, 28, 29]

字典生成式

	# 字典生成式
	lst5 = ['张三', '里斯', '王武']
	dict1 = {i+1: lst5[i] for i in range(0, len(lst5))} //{1: '张三', 2: '里斯', 3: '王武'}

集合生成式

	set1 = {i * j for i in range(1, 4) for j in range(1, 4) if i == j} //{1, 4, 9}

散列值hash()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值