Python06-2容器

容器篇

​ 变量这种存储单个数据的容器,也会提供光存储多个数据容器

​ – 线性容器:具备顺序
数组(Array):连续内存
链表(List):Python list的容器,底层使用的就是双向链表结构
栈(Stack):先进后出
队列(Queue):先进先出
hash表:

list:

​ **列表:**是一种线性结构的容器,底层使用的是双向链表结构设计

定义一个 list 容器:

​ 利用若数据类型语言的特点,直接将[]这种列表数据赋给变量,则变量就是list类型

ls = [1, 2, 3, 3, 23]

​ 也可以使用全局函数 list

ls = list()
ls = list([1, 2, 3, 4, 5])

访问列表中的元素:

​ 因为list是有序的线性结构,因此每一个都是存在下标(索引)的,所以可以直接通过下标来访问列表对象[下标] # 获取变量对应的元素

⏰ 注意:下标从0开始

得到list中的元素个数
len(列表对象) # 返回对象的元素个数

列表的遍历:

for 临时变量 in 容器:
	每一次循环得到一个元素,被保存到临时变量中
也可以使用while,通过索引获取

list列表的常见方法:

dir(模块/对象)		# dir全局函数可以打印输出模块或者对象的方法或者属性
help(方法)			  # 返回帮助文档

['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
  • append(新元素) # 在尾部添加新元素
  • insert(index, 新元素) # 在index位置添加新元素
  • extend(列表) # 合并列表
  • clear() # 清空列表
  • pop() # 删除最后一个元素
  • remove(元素) # 删除对应的元素
  • index(元素) # 返回元素的下标索引
  • count(元素) # 统计某个元素在列表中的数量
  • reverse() # 反转列表
  • sort() # 数据的类型必须相同 sort(*, key=None, reverse=False)
  • copy() # 复制list对象

set(集合):

​ set是一种无序的集合,是一种hash表(哈希表)的实现,所以具备如下特点:
1、无序
2、不重复

定义一个set:

s = {必须有元素} # 注意:不要使用空的{},这样定义的是字典
s = set()
s = set([1, 2, 3, 4]) # 相当于将list转化成了set

常见方法

[ 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
  • add(新元素)
  • discard() # 如果元素存在,移除元素
  • pop() # 随机移除一个元素
  • union() # 并集
  • intersection() # 交集
  • difference() # 差集

tuple(元组):

​ 不可变数据类型,类似于其他编程语言的枚举类型
代表一组固定不变的

定义一个tuple:

season = ("春", "夏", "秋", "冬")

常见方法:

  • index(元素) # 返回元素的下标索引
  • count(元素) # 统计某个元素在列表中的数量

元组只有一个元素默认类型为该元素类型

强制设置只有一个元素的元组类型为元组,则在元素后,加逗号即可

dict(字典):

定义一个tuple:

d = {"name": "tom", "age": 16}

>>> d = {"name": "tom", "age": 16}
>>> d.get("name")
'tom'
>>> d.get("age")
16
>>> d.keys()
dict_keys(['name', 'age'])
>>> d.values()
dict_values(['tom', 16])
>>> d["address"] = "Chongqing"          # 增加键值对

常见方法:

['add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
  • get(键) # 获取键对应的值
  • keys() # 获取字典里所有的键
  • values() # 获取字典里所有的值
  • items() # 获取字典里所有的键值对
  • pop(键) # 删除键值对
  • popitem() # (LIFO)倒着删除

字典遍历:

d = {"name": "tom", "age": 16}
for i in d:
	print(k)	# 打印键
	
for j in d:
	print(j, d[j])	# 打印键值

for k in d.keys():
	print(k, d[k])	# 打印键值

for (key, value) in d.items():
	print(key, value)
	
for res in d.items():
	print(res[0], res[1])	#res[0]:键  res[1]:值
上一篇:每日一练_136 津津的储蓄计划.


下一篇:[220207] Find the Difference