[Python] 组合数据类型(集合/列表/元组/字典)

本文主要想整理一些python常用的组合数据类型的方法。资料主要来源于菜鸟教程

一、集合类型(Set)

  • 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。
  • 创建方法:可以使用大括号 { } 或者 set() 函数创建集合,如创建的是空集合不能用 { }

1.去重功能

s1 = 'ppppython18'
print(set(s1))

输出如下

{'n', '8', 'p', '1', 't', 'y', 'o', 'h'}

2.集合运算

s1 = 'ppppython18'
s2 = '180'
# 差集
print(set(s1) - set(s2))
# 并集
print(set(s1 ) | set(s2 ))
# 交集
print(set(s1) & set(s2))
# 异或集,不同时包含于sample1和sample2的元素
print(set(s1) ^ set(s2))
{'t', 'o', 'n', 'p', 'y', 'h'}
{'0', 'o', 't', 'n', 'p', 'y', '8', '1', 'h'}
{'1', '8'}
{'0', 't', 'o', 'n', 'p', 'y', 'h'}

3.集合内置方法

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

二、序列类型

1.列表类型(List)

  • 列表(List)是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
  • 列表是写在方括号 [] 之间、用逗号,分隔开的元素列表。

1.1 访问列表

使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取字符。其中,索引值以 0 为开始值,-1 为从末尾的开始位置。

l1 = ['python', 12, 0]
print(l1[0])
print(l1[1:])
python
[12, 0]

1.2 列表内置方法

方法/语法描述
list.append(obj)在列表末尾添加新的对象
list.count(obj)统计某个元素在列表中出现的次数
list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj)从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj)将对象插入列表
list.pop([index=-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj)移除列表中某个值的第一个匹配项
list.reverse()反向列表中元素
list.sort( key=None, reverse=False)对原列表进行排序
list.clear()清空列表
list.copy()复制列表

2.元组类型(Tuple)

  • 元组(tuple)与列表类似,但是元组的元素不允许修改。
  • 元组写在小括号 () 里,元素之间用逗号,隔开。
  • 元组中的元素类型也可以不相同。

2.1 创建元组

tup1 = ('python', 12, 0)
tup2 = "p", "y", "t", "h", "o", "n"    # 可以不需要括号
tup3 = (180,)  # 元组中只包含一个元素时,需要在元素后面添加逗号
print(tup1, type(tup1))
print(tup2, type(tup2))
print(tup3, type(tup3))
('python', 12, 0) <class 'tuple'>
('p', 'y', 't', 'h', 'o', 'n') <class 'tuple'>
(180,) <class 'tuple'>

2.2 访问元组

tup1 = ('python', 12, 0)
print(tup1[0])
print(tup1[1:])
python
(12, 0)

2.3 元组不可变

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

tup1 = ('python', 12, 0)
tup1[0] = 'asd'
Traceback (most recent call last):
  File "D:/...", line 27, in <module>
    tup1[0] = 'asd'
TypeError: 'tuple' object does not support item assignment

三、字典类型(Dictionary)

  • 字典(Dictionary)是一种映射类型,字典用 { } 标识,它是一个无序的key : value 的集合。
  • 列表是有序的对象集合,而字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
  • 值可以取任何数据类型;但键必须是不可变的,可以用数字,字符串或元组充当。
  • 在同一个字典中,键(key)必须是唯一的。

1. 创建字典

dict1 = {'Id': 1, 'Name': 'Tom', 'Age': 18}
dict2 = dict(Id=2, Name='Amy', Age=21)
print(dict1, type(dict1))
print(dict2, type(dict2))
{'Id': 1, 'Name': 'Tom', 'Age': 18} <class 'dict'>
{'Id': 2, 'Name': 'Amy', 'Age': 21} <class 'dict'>

2.访问字典

  1. 一键一值的情况
dict1 = {'Id': 1, 'Name': 'Tom', 'Age': 18}
print(dict1['Id'])
print(dict1.keys())     # 输出所有键
print(dict1.values())   # 输出所有值
1
dict_keys(['Id', 'Name', 'Age'])
dict_values([1, 'Tom', 18])
  1. 一键多值的情况
dict3 = {'Id': [1, 2], 'Name': ['Tom', 'Tony'], 'Age': [18, 30]}
print(dict3['Name'][0])
Tom

3.修改字典

dict1 = {'Id': 1, 'Name': 'Tom', 'Age': 18}
dict1['Id'] = 10
print(dict1, type(dict1))
{'Id': 10, 'Name': 'Tom', 'Age': 18} <class 'dict'>

4.字典内置方法

方法/语法描述
dict.clear())删除字典内所有元素
dict.copy()返回一个字典的浅复制
dict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
key in dict如果键在字典dict里返回true,否则返回false
dict.items()以列表返回可遍历的(键, 值) 元组数组
dict.keys()返回一个迭代器,可以使用 list() 来转换为列表
dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2)把字典dict2的键/值对更新到dict里
dict.values()返回一个迭代器,可以使用 list() 来转换为列表
pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem()随机返回并删除字典中的最后一对键和值。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值