【AI_Python基础_05数据容器】


前言

列表、元组、集合、字典


一、列表

Python 支持多种复合数据类型,可将不同值组合在一起。最常用的列表 ,是用方括号标注,逗号分隔的一组值。列表可以包含不同类型的元素,但一般情况下,各个元素的类型相同。

1.列表的表达式

lst = []
lst1 = ['张无忌', '张翠山', 1997, 2000]
lst2 = [1, 2, 3, 4, 5 ]
lst3 = ["a", "b", "c", "d"]
lst4 = ['周芷若', '周杰伦', '周星驰', '周润发']

2.访问列表的值

2.1 索引

我们想索引列表里的某一个数据,可以用list[]中括号里放入需要索引数据的脚标,比如说,首先建立一个列表:

lst = ['周芷若', '周杰伦', '周星驰', '周润发']

我想在lst访问周星驰:

print(lst[3])		#	'周星驰'

列表的索引、反向索引、切片和字符串的使用方法是一样的。

3.列表的更新

对列表的数据项进行修改或更新,也可以使用.append()方法来添加列表项
例如:我想把周星驰改为周星星,并且把达叔添加到我的列表里。

lst = ['周芷若', '周杰伦', '周星驰', '周润发']
lst[2] = '周星星'
lst.append('达叔')
print(lst)

['周芷若', '周杰伦', '周星星', '周润发', '达叔']

4.删除列表元素

del语句来删除列表的元素。
比如,我还是想让列表里都是姓周的,只能再把达叔删掉了。

lst = ['周芷若', '周杰伦', '周星星', '周润发', '达叔']
del lst[4]
print(lst)

['周芷若', '周杰伦', '周星星', '周润发']

5.列表的操作符

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迭代

6.Python列表常用API

操作列表的函数

序号函数
1len(list)列表元素个数
2max(list)返回列表元素最大值
3min(list)返回列表元素最小值
4list(seq)将元组转换为列表
序号方法
1list.append(obj)在列表末尾添加新的对象
2list.count(obj)统计某个元素在列表中出现的次数
3list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4list.index(obj)从列表中找出某个值第一个匹配项的索引位置
5list.insert(index, obj)将对象插入列表
6list.pop(index=-1)移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7list.remove(obj)移除列表中某个值的第一个匹配项
8list.reverse()反向列表中元素
9list.sort( key=None, reverse=False)对原列表进行排序: x.sort(key=lambda a:abs(a-3), reverse=False)
10list.clear()清空列表
11list.copy()复制列表

二、元组

这里我偷个懒,元组的知识点几乎与列表大差不差,下面我总结一些差异的知识点。

1.元组的表达式

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

tup = (1, 2, 3, 4)

元组只包含一个元素的时候,需要在元素后面加个,

tup = (10,)

另外,

2.元组可以存放的数据类型

元组中的元素可以是不同类型的数据,如整数、浮点数、字符串等。

3.元组的不可变性

元组最重要的是不可变的,元组不支持增删改操作,即不能向元组中添加、删除或修改元素。

4.元组的巧妙用法

4.1 多变量赋值

可以使用元组将多个变量一次性赋值,这在交换变量值时非常方便。例如:

a, b = 1, 2
a, b = b, a  # 交换变量值

4.2函数返回多个值

函数可以返回一个元组,这样可以方便地返回多个值。例如:

def get_data():
    # 从数据库中获取数据
    return ("John", 30, "Male")

name, age, gender = get_data()

4.3格式化字符串

使用元组将变量传递给字符串的格式化操作符 %。例如:

person = ("John", 30)
sentence = "Name: %s, Age: %d" % person

4.4元组解包

可以将元组解包成多个变量。例如:

person = ("John", 30)
name, age = person

4.5作为不可变键使用

这个还没讲到:元组可以作为字典的键,因为元组是不可变的。这在需要使用多个值作为键时很有用。

4.6元组拼接

可以使用 + 运算符将两个元组合并成一个新的元组。例如:

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
result = tuple1 + tuple2

4.7用于不可变列表

在需要存储不可变的列表时,可以使用元组。这样可以保证列表的内容不被修改。

三、集合

1.集合的表示

可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。

注意 :创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

set1 = {1, 2, 3, 4}# 直接使用大括号创建集合
set2 = set([4, 5, 6, 7])# 使用 set()函数从列表创建集合
set3 = set((4, 5, 6, 7))# 使用 set()函数从元组创建集合

2.添加、删除元素

将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
s.add( x ) 添加元素到集合 ,x 可以有多个,用逗号分开
s.update( x ) 添加元素到集合,且参数可以是列表,元组,字典等 ,x 可以有多个,用逗号分开

s1 = set((4, 5, 6, 7))
s1.add(100)
print(s1)
s1.update([200,300])
print(s1)

s.remove( x ):将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。**
s.discard( x ):将元素 x 从集合 s 中移除,如果元素不存在,不会发生错误。
s.pop():对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

s1 = {10, 20, 30}
s1.remove(20)
print(s1)
s1.remove(40)#报错
s1 = {10, 20, 30}
s1.discard(20)
print(s1)
s1.discard(40)
s1 = {10, 20, 30}
s1.pop()
print(s1)

3.集合内置方法完整API

方法描述
add()为集合添加元素
clear()移除集合中的所有元素
copy()拷贝一个集合
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在。
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()返回集合的交集。
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset()判断指定集合是否为该方法参数集合的子集。
issuperset()判断该方法的参数集合是否为指定集合的子集
pop()随机移除元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合。
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union()返回两个集合的并集
update()给集合添加元素
len()计算集合元素个数

四、字典

1.字典的创建

字典是一种可变容器模型,且可存储任意类型对象。
字典的每个键值对( key:value )用冒号分割,每个对之间用逗号分割,整个字典包括在花括号 {} 中

d = {key1 : value1, key2 : value2, key3 : value3 }

d1 = {}#创建空字典
d2 = dict()#使用内建函数 dict()创建字典
d3 = {"name":"karen","age":23}
d4 = dict({"name":"jack","age":24})

print(d3)# 打印字典
print(len(d3))# 查看字典的数量
print(type(d3))# 查看类型

2.访问字典

字典访问需要访问key,来访问value

mydic = {'Name': 'hqyj', 'Age': 7, 'Class': 'First'} 
print (mydic['Name'])
print (mydic['Age'])

另外,如果访问字典的时候,没有key访问的数据,则会报错。

3.修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对。

mydic = {'Name': 'hqyj', 'Age': 7, 'Class': 'First'} 

mydic['Age'] = 8 # 更新
Agemydic['School'] = "华清" #添加信息  

print (mydic['Age'])
print (mydic['School'])

4.删除字典中的元素

能删单一的元素也能清空字典,清空只需一项操作,显式删除一个字典用del命令。

mydic = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del mydic['Name'] # 删除键 'Name'
mydic.clear()     # 清空字典
print (mydic['Age'])
print (mydic['School'])
del mydic         # 删除字典

5.字典常用API

操作字典的函数:

序号函数描述
1len(dict)计算字典元素个数,即键的总数。
2str(dict)输出字典,可以打印的字符串表示。
3type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。

字典的方法:

序号函数及描述
1dict.clear()删除字典内所有元素
2dict.copy()返回一个字典的浅复制
3dict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict如果键在字典dict里返回true,否则返回false
6dict.items()以列表返回一个视图对象
7dict.keys()返回一个视图对象
8dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2)把字典dict2的键/值对更新到dict里
10dict.values()返回一个视图对象
11pop(key,default)删除字典 key(键)所对应的值,返回被删除的值。
12popitem()返回并删除字典中的最后一对键和值。
  • 62
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值