python容器介绍与常用方法

本文介绍了Python中的四种主要容器:列表、元组、集合和字典。详细讲解了它们的定义、创建方法以及常见的操作,如列表的常用方法、元组的不可变特性、集合的无序和不重复特点,以及字典的键值对存储方式。通过实例展示了如何在Python中创建和操作这些容器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python 容器

什么是容器?

** 字面上理解:容器就是用来存取东西的,根据不同的东西来使用不同的容器。**

** 那么python的容器是什么?当然也是用来存取东西的,那么存的是什么?存的当然是数据。**

python容器介绍

python的容器拢共有4个:

  • 列表(list):线性表, 底层采用双向循环链表进行实现。
  • 元组(tuple): 元组一旦创建,那么里面的数据保守意义上来说是不可变得,但是如果元祖里面存储的是可变数据类型,那么元祖即又变得可变。
  • 集合(set):集合的底层基于hash表实现的,不能重复,无序的。
  • 字典(dict):以键值对形式进行数据存储。

容器创建

列表创建:

list1=[“a”,“b”,“c”]

list1=list([“a”,“b”,1,2,3])

元组创建:

t=(“a”,“b”,“c”)

t=tuple()

t=tuple((“a”,“b”,“c”,1,2))

集合创建:

s=set()

s=set({“1”,“2”,“3”,1,2,3})

s={“1”,1,2,3}

字典创建:

d={“name”:“daxian”,“age”:16}

d=dict({“name”:“daxian”,“age”:16})

常见方法介绍

list常见方法:
append()# 向列表尾部追加元素
insert(index,file)向指定的位置追加元素
sort()排序(一般用来排序数字)
index()查找元素第一次在列表中出现的位置,如果没有这个元素,则抛出异常
reverse()将列表元素顺序翻转
remove()通过元素来移除元素,注意,如果元素不存在,则抛出异常
count()统计元素个数
clear()清除元素
copy()浅拷贝对象,是在堆内存中进行对象拷贝的
extend合并列表
pop()删除最后元素,并返回这个元素

实例:

list1=list(["a","b","c",1,2,3,"-","&"])
list2=["abc","name","age"]
print(list1)
print(list2)
# append() 向列表尾部添加元素
list1.append("xian")
print(list1)
#insert() 向指定位置添加元素
list1.insert(0,"index")
print(list1)
# list1.sort() sort()方法只能对列表中不存在不同类型的元素进行排序
list2.sort()
print(list2)
# index() 查找元素在列表中第一次出现的位置,如果没有这个元素,则抛出异常
print(list1.index("c"))

#reverse() 将列表元素进行翻转
list1.reverse()
print(list1)

# remove() 通过元素来移除元素,如果元素不存在,则抛出异常
list1.remove("c")
print(list1)

#count() 统计列表中单个元素出现的次数
print(list1.count("b"))

# clear() 清除列表中的所有元素
list2.clear()
print(list2)

# copy() 浅拷贝列表,并返回新的列表
list3=list1.copy()
print(list3)

#extend() 合并列表,将传入的列表元素添加到原有列表中
list3.extend(list1)
print(list3)

#pop():删除最后的元素,并返回
print(list3.pop())

输出结果:

['a', 'b', 'c', 1, 2, 3, '-', '&']
['abc', 'name', 'age']
['a', 'b', 'c', 1, 2, 3, '-', '&', 'xian']
['index', 'a', 'b', 'c', 1, 2, 3, '-', '&', 'xian']
['abc', 'age', 'name']
3
['xian', '&', '-', 3, 2, 1, 'c', 'b', 'a', 'index']
['xian', '&', '-', 3, 2, 1, 'b', 'a', 'index']
1
[]
['xian', '&', '-', 3, 2, 1, 'b', 'a', 'index']
['xian', '&', '-', 3, 2, 1, 'b', 'a', 'index', 'xian', '&', '-', 3, 2, 1, 'b', 'a', 'index']
index

元组常见方法:

index(参数)根据元素获取下标
count(参数)获取元组中单独元素存在的个数

实例:

#创建一个元组
tuple1=("a","b","c")
tuple2=(1,2,3,4)
tuple3=(1,['a','b'],2)

print(tuple1)
print(tuple2)
print(tuple3)

#index() 根据元素获取下标
print(tuple1.index("b"))
print(tuple1.index("c"))

#count() 获取元组元素个数
print(tuple1.count("a"))

结果:

('a', 'b', 'c')
(1, 2, 3, 4)
(1, ['a', 'b'], 2)
1
2
1

集合常见方法:

clear()清除数据
remove()删除数据
copy()浅拷贝数据
add()增加元素
difference()差集
intersection交集
union并集
update()更新集合,合并集合
discard移除元素,如果不存在,则不作任何操作

实例:

# 创建一个集合
set1={"1","2","3","a","b","c",1,2,3}
set2=set({"a","b",1,2,3})
set3={}

print(set1)
print(set2)
print(set3)
print(type(set3))  #可以发现set3是一个字典对象,因为set3没有进行赋值,请注意,声明一个集合时,如果没有一个值存在,那么这个集合会变成字典类型
print(type(set2))

# clear() 清除数据
set2.clear()
print(set2)
print(type(set2))
set2=set({"a","b",1,2,3})


#copy()浅拷贝数据
set4=set1.copy()
print(set4)

#add() 增加元素
set4.add("agb")
print(set4)    #set 集合自动排序
set5={"f","w","c","a"}
print(set5)

# set5.add(0,"sfdf")  因为set集合底层是hash实现,所以没有下标这一说

#difference() 差集 ,将两个集合进行比较,返回一个新的集合
print(set1)
print(set4)
set6=set1.difference(set4)   #difference() 不能对浅拷贝的对象进行比较?
print(set6)
set7=set1.difference(set2)
print(set7)

#intersection 对两个集合进行比较 返回元素相同的内容 重新返回一个集合

set8=set1.intersection(set2)
print(set8)
set9=set1.intersection(set4)   #可以对浅拷贝对象使用,差集比较返回的是set() 不知道为什么
print(set9)   

#union()  并集,合并两个集合,相同元素只会出现一次,并返回新的集合
sss1=set1.union(set4)
print(sss1)

#update() 更新集合,将两个集合进行合并,不会返回新的集合
set1.update(set4)
print(set1)

#discard() 移除元素,如果元素不存在,不会报错
set1.discard("agb")
print(set1)

输出结果:

{1, 2, '2', 3, 'b', '1', '3', 'a', 'c'}
{1, 2, 3, 'b', 'a'}
{}
<class 'dict'>
<class 'set'>
set()
<class 'set'>
{1, 2, '2', 3, 'b', '1', '3', 'a', 'c'}
{1, 2, '2', 3, 'b', '1', 'agb', '3', 'a', 'c'}
{'f', 'w', 'c', 'a'}
{1, 2, '2', 3, 'b', '1', '3', 'a', 'c'}
{1, 2, '2', 3, 'b', '1', 'agb', '3', 'a', 'c'}
set()
{'3', '2', 'c', '1'}
{1, 2, 3, 'b', 'a'}
{1, 2, 3, '2', 'b', '1', '3', 'a', 'c'}
{1, 2, '2', 3, 'b', '1', 'agb', '3', 'a', 'c'}
{1, 2, '2', 3, 'b', '1', 'agb', '3', 'a', 'c'}
{1, 2, '2', 3, 'b', '1', '3', 'a', 'c'}

字典常见方法:

clear清除元素
copy浅拷贝
get根据键获取值,如果没有则返回None
keys返回所有的键 返回值:<class ‘dict_keys’>
values返回所有的值 返回值:<class ‘dict_values’>
setdefaultsetdefault() 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
itemsPython 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组 返回值<class ‘dict_items’>
pop通过key删除键值对
popitem移除一个键值对,移除规则是LIFO(后进先出)last in first out 并返回移除的键值对
update()更新字典,或者添加元素,如果已有键,那么根据键更新元素value,如果没有,则添加元素

实例:

#创建一个字典:
dict1={"name":"wangdaxian","age":100,"gender":"男"}
dict2=dict({"喜好":"女","擅长":"睡觉"})

#clrar() 清除元素
dict2.clear()
print(dict2)

dict2=dict({"喜好":"女","擅长":"睡觉"})
#copy()
dict3=dict2.copy()
print(dict3)

#get() 根据键获取值 如果没有则返回None
print(dict1.get("name"))
print(dict1.get("fdfd"))

# keys()返回所有的键   返回值:<class 'dict_keys'>
keys=dict1.keys()
print(type(keys))
print(keys)


#values()返回所有的值  返回值 <class 'dict_values'>
values=dict1.values()
print(type(values))
print(values)


#setdefault() 设置默认值
dict1.setdefault("wangdaxian")
dict1.update({"country":""})
dict1.setdefault("","wangdaxian")
dict1.setdefault("","")
print(dict1)

#字典的键与值都可以为空


# items() 返回一个键值对
list1=dict1.items()
print(type(list1))   #<class 'dict_items'>
print(list1)


#pop()通过key删除键值对
dict1.pop("age")
print(dict1)

#popitem() 移除一个键值对,移除规则是LIFO 后进先出,尾部移除  并返回移除的键值对
print(dict1.popitem())

执行结果:

{}
{'喜好': '女', '擅长': '睡觉'}
wangdaxian
None
<class 'dict_keys'>
dict_keys(['name', 'age', 'gender'])
<class 'dict_values'>
dict_values(['wangdaxian', 100, '男'])
{'name': 'wangdaxian', 'age': 100, 'gender': '男', 'wangdaxian': None, 'country': '', '': 'wangdaxian'}
<class 'dict_items'>
dict_items([('name', 'wangdaxian'), ('age', 100), ('gender', '男'), ('wangdaxian', None), ('country', ''), ('', 'wangdaxian')])
{'name': 'wangdaxian', 'gender': '男', 'wangdaxian': None, 'country': '', '': 'wangdaxian'}
('', 'wangdaxian')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值