python列表+元组+字典+集合

声明:本人的所有博客皆为个人笔记,作为个人知识索引使用,因此在叙述上存在逻辑不通顺、跨度大等问题,希望理解。分享出来仅供大家学习翻阅,若有错误希望指出,感谢!

Python列表

序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推

序列都可以进行的操作包括索引,切片,加,乘,检查成员

Python已经内置确定序列的长度以及确定最大和最小的元素的方法


  • 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现
  • 列表的数据项不需要具有相同的类型
  • 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
  • list1 = [‘Google’, ‘Runoob’, 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = [“a”, “b”, “c”, “d”];
  • 与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等

访问列表中的值

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:

list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7 ]
print ("list1[0]: ", list1[0]) 
print ("list2[1:5]: ", list2[1:5])

以上实例输出结果:

list1[0]:  Google
list2[1:5]:  [2, 3, 4, 5]

更新列表

可以对列表的数据项进行修改或更新,也可以使用append()方法来添加列表项

list = ['Google','Runoob', 1997, 2000]
print ("第三个元素为:",list[2])
list[2] = 2001
print ("更新后的第三个元素为:",list[2])

以上实例输出结果:

第三个元素为 :  1997
更新后的第三个元素为 :  2001

删除列表元素

可以使用 del 语句来删除列表的的元素

list = ['Google', 'Runoob', 1997, 2000]  
print ("原始列表 : ", list) 
del list[2] 
print ("删除第三个元素 : ", list)

以上实例输出结果:

原始列表 :  ['Google', 'Runoob', 1997, 2000]
删除第三个元素 :  ['Google', 'Runoob', 2000]

Python列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表

如下所示:

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

Python列表截取与拼接

Python的列表截取与字符串操作类型,如下所示:

L=[‘Google’, ‘Runoob’, ‘Taobao’]

操作:

Python 表达式结果描述
L[2]‘Taobao’读取第三个元素
L[-2]‘Runoob’从右侧开始读取倒数第二个元素
L[1:][‘Runoob’, ‘Taobao’]输出从第二个元素开始后的所有元素

列表还支持拼接操作:

>>>squares = [1, 4, 9, 16, 25] 
>>> squares += [36, 49, 64, 81, 100] 
>>> squares 
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 

嵌套列表

使用嵌套列表即在列表里创建其它列表,例如:

>>> a = ['a', 'b', 'c'] 
>>> n = [1, 2, 3] 
>>> x = [a, n] 
>>> x 
[['a', 'b', 'c'], [1, 2, 3]] 
>>> x[0] 
['a', 'b', 'c'] 
>>> x[0][1] 
'b'

Python列表函数&方法

序号函数
1len(list) 列表元素个数
2max(list) 返回列表元素最大值
3min(list) 返回列表元素最小值
4list(seq) 将元组转换为列表

Python包含以下方法:

序号方法
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) 对原列表进行排序
10list.clear() 清空列表
11list.copy() 复制列表

Python元组

  • Python 的元组与列表类似,不同之处在于元组的元素不能修改
  • 元组使用小括号,列表使用方括号
  • 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可
  • 元组与字符串类似,下标索引从0开始,可以进行截取,组合等
>>> tup1 = (1, 2, 3, 4, 5 ) 
>>> tup2 = "a", "b", "c", "d"   #  不需要括号也可以 
>>> type(tup2) 
<class 'tuple'>

创建空元组

tup1 = ()

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用

>>>tup1 = (50) 
>>> type(tup1)     # 不加逗号,类型为整型 
<class 'int'>  
>>> tup1 = (50,) 
>>> type(tup1)     # 加上逗号,类型为元组 
<class 'tuple'>

访问元组

元组可以使用下标索引来访问元组中的值

tup1 = ('Google', 'Runoob', 1997, 2000) 
tup2 = (1, 2, 3, 4, 5, 6, 7 )  
print ("tup1[0]: ", tup1[0]) 
print ("tup2[1:5]: ", tup2[1:5])

以上实例输出结果:

tup1[0]:  Google
tup2[1:5]:  (2, 3, 4, 5)

修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

tup1 = (12, 34.56) 
tup2 = ('abc', 'xyz')  
# 创建一个新的元组 
tup3 = tup1 + tup2 
print (tup3)

以上实例输出结果:

(12, 34.56, 'abc', 'xyz')

删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

tup = ('Google', 'Runoob', 1997, 2000)  
print (tup) 
del tup 	#删除整个元组

元组运算符

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

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

元组索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素

元组:

L = ('Google', 'Taobao', 'Runoob')
Python 表达式结果描述
L[2]‘Runoob’读取第三个元素
L[-2]‘Taobao’反向读取,读取倒数第二个元素
L[1:](‘Taobao’, ‘Runoob’)截取元素,从第二个开始后的所有元素

元组内置函数

Python元组包含了以下内置函数

序号方法及描述实例
1len(tuple) 计算元组元素个数。tuple1 = (‘Google’, ‘Runoob’, ‘Taobao’)
len(tuple1) 输出为 3
2max(tuple) 返回元组中元素最大值tuple2 = (‘5’, ‘4’, ‘8’)
max(tuple2) 输出为 ‘8’
3min(tuple) 返回元组中元素最小值tuple2 = (‘5’, ‘4’, ‘8’)
min(tuple2) 输出为 ‘4’
4tuple(iterable) 将可迭代系列转换为元组list1= [‘Google’, ‘Taobao’, ‘Runoob’]
tuple1=tuple(list1)
tuple1 输出为 (‘Google’, ‘Taobao’, ‘Runoob’)

关于元组是不可变的

所谓元组的不可变指的是元组所指向的内存中的内容不可变

Python字典

字典是另一种可变容器模型,且可存储任意类型对象

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号**{ }**中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组

一个简单的字典实例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此创建字典:

dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }

访问字典里的值

把相应的键放入到方括号中

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}  
print ("dict['Name']: ", dict['Name']) 
print ("dict['Age']: ", dict['Age'])

以上实例输出结果:

dict['Name']:  Runoob
dict['Age']:  7

修改字典

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

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}  
dict['Age'] = 8      # 更新 
Age dict['School'] = "菜鸟教程"  # 添加信息   

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作

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

字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行

两个重要的点需要记住:

  1. 不允许同一个键出现两次,创建时如果同一个键被赋值两次,则只有后一个值会被记录
dict = {'Name': 'Runoob','Name': '小菜鸟'}  
print ("dict['Name']: ", dict['Name'])

以上实例输出结果:

dict['Name']:  小菜鸟		#仅后一个值被记录
  1. 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

字典内置函数&方法

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

Python字典包含了以下内置方法:

序号函数描述
1radiansdict.clear()删除字典内所有元素
2radiansdict.copy()返回一个字典的浅复制
3radiansdict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4radiansdict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值
5key in dict如果键在字典dict里返回true,否则返回false
6radiansdict.items()以列表返回可遍历的(键, 值) 元组数组
7radiansdict.keys()返回一个迭代器,可以使用 list() 来转换为列表
8radiansdict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9radiansdict.update(dict2)把字典dict2的键/值对更新到dict里
10radiansdict.values()返回一个迭代器,可以使用 list() 来转换为列表
11pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
12popitem()随机返回并删除字典中的最后一对键和值

Python集合

集合(set)是一个无序不重复元素序列

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

创建格式:

parame = {value01,value02,...}
#或者
set(value)

类似列表推导式,同样集合支持集合推导式(Set comprehension)

>>>a = {x for x in 'abracadabra' if x not in 'abc'} 
>>> a 
{'r', 'd'}

集合的基本操作

添加元素

语法格式如下:

s.add( x )

将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作

>>>thisset = set(("Google", "Runoob", "Taobao")) 
>>> thisset.add("Facebook") 
>>> print(thisset) 
{'Taobao', 'Facebook', 'Google', 'Runoob'}

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update( x )

x 可以有多个,用逗号分开

>>>thisset = set(("Google", "Runoob", "Taobao")) 
>>> thisset.update({1,3}) 
>>> print(thisset) 
{1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])
>>> print(thisset) 
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}

移除元素

语法格式如下:

s.remove( x )

将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'Runoob'}

此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook")  # 不存在不会发生错误
>>> print(thisset)
{'Taobao', 'Google', 'Runoob'}

我们也可以设置随机删除集合中的一个元素,语法格式如下:

s.pop() 
thisset = set(("Google", "Runoob", "Taobao", "Facebook")) 
x = thisset.pop()  
print(x)

输出结果:

Runoob

多次执行测试结果都不一样

set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除

计算集合元素个数

语法格式如下:

len(s)

计算集合 s 元素个数

>>>thisset = set(("Google", "Runoob", "Taobao")) 
>>> len(thisset) 
3

清空集合

语法格式如下:

s.clear()

清空集合 s

>>>thisset = set(("Google", "Runoob", "Taobao")) 
>>> thisset.clear() 
>>> print(thisset) 
set()

判断元素是否在集合中存在

语法格式如下:

x in s

判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False

>>>thisset = set(("Google", "Runoob", "Taobao")) 
>>> "Runoob" in thisset 
True 
>>> "Facebook" in thisset 
False

集合内置方法完整列表

方法描述
add()为集合添加元素
clear()移除集合中的所有元素
copy()拷贝一个集合
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()返回集合的交集
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
issubset()判断指定集合是否为该方法参数集合的子集
issuperset()判断该方法的参数集合是否为指定集合的子集
pop()随机移除元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中
union()返回两个集合的并集
update()给集合添加元素
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 中,列表元组集合字典是四种常用的数据结构,它们各自具有不同的特性和用途: 1. 列表(List):列表是一种有序、可变的数据结构,用于存储多个元素。列表使用方括号 [] 来表示,元素之间用逗号分隔。列表中的元素可以是任意类型,并且可以通过索引进行访问、修改和删除。列表还支持切片操作和多种方法(如添加、删除和排序等)。 2. 元组(Tuple):元组是一种有序、不可变的数据结构,用于存储多个元素。元组使用圆括号 () 来表示,元素之间用逗号分隔。与列表不同,元组一旦创建就不能修改,因此具有更高的安全性。元组通常用于存储不可变的数据,如坐标、日期和配置信息等。 3. 集合(Set):集合是一种无序、可变的数据结构,用于存储唯一的元素。集合使用花括号 {} 来表示,元素之间用逗号分隔。集合中不允许重复的元素,且没有索引,不支持切片操作。集合支持常见的数学集合操作,如并集、交集、差集等。集合常用于去重操作和判断元素的存在性。 4. 字典(Dictionary):字典是一种无序、可变的键值对数据结构,用于存储多个键值对。字典使用花括号 {} 来表示,每个键值对之间用冒号 : 分隔,键值对之间用逗号分隔。字典中的键必须是唯一的,而值可以是任意类型。字典通过键来访问、修改和删除对应的值,具有快速的查找速度。 总结起来,列表适合存储有序、可变的多个元素;元组适合存储有序、不可变的多个元素;集合适合存储无序、唯一的元素;字典适合存储键值对数据。根据具体的需求和数据特性,选择合适的数据结构可以更有效地处理和操作数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值