Python 语言学习要点记录6-tuple,set, dict相关

liftword4个月前 (02-26)技术文章26

tuple

tuple 是包含了一些用分号分隔的数据,例如

d = 11, 22, 'abc', True
d     #(11, 22, 'abc', True)
d[1]     #22
t = d, (3, 4, 5)    # 嵌套和组合
t    # ((11, 22, 'abc', True), (3, 4, 5))
t = t, [55, 66, 77]   #元组可以包含 list 类型数据
t    # (((11, 22, 'abc', True), (3, 4, 5)), [55, 66, 77])

定义包含一个元素的 tuple,元素后必须带一个逗号:

a = ()    #定义空 tuple
type(a)   # tuple
b = (1,)  #定义包含一个元素的 tuple
len(b)   #1
type(b)   # tuple
c = (11)
c   # 11
type(c)   # int
d = ('abc')
d = ('abc')
type(d)   # str

可以将 tuple 的值开箱付给变量

data = 11, 'abc', True

a,b,c = data
a    #11
b    #‘abc’
c    #True

tuple 是内容不可修改类型,不能修改某个元素的值。所以可以包含多种类型的元素。而 list 是内容可修改类型的,所以一般都包含相同类型的元素。

set

集合类型 set,是没有重复元素的无序集合。基本用途包括测试是否包含元素和消除重复元素。 集合对象还支持并集、交集、差集和对称差集等数学运算。

可以使用{} 或者 set() 定义集合 set。只能通过 set() 创建空集合。

fruits = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
fruits   #{'apple', 'banana', 'orange', 'pear'}
len(fruits)   # 4
'pear' in fruits # True

str = set("python")
str   #{'h', 'n', 'o', 'p', 't', 'y'}
str1 = set("throat")
s - t    # {'n', 'p', 'y'} 差集,包含在 s 中,不包含 t
s | t   # {'a', 'h', 'n', 'o', 'p', 'r', 't', 'y'}  并集,包含 s 或者包含 t ,或者两者都包含
s & t  #  {'h', 'o', 't'}   #交集,同时包含在 s 也包含 t
s ^ t   # {'a', 'n', 'p', 'r', 'y'}   #对称差集,包含 s 或者 t,但不包含交集部分

set 推导式

与 list 推导式类似,set 也支持推导式:

s = {x for x in 'terminological' if x not in 'game'}
s    # {'c', 'i', 'l', 'n', 'o', 'r', 't'}

dictionary

字典 dict 的元素是键值对,是可编辑类型。字典由键索引,键可以是任何不可变类型; 字符串和数字可以作为键。 如果 tuple 只包含字符串、数字或 tuple,则它们可以用作键; 如果tuple 直接或间接包含任何可变对象,则不能将其用作键。 不能将列表用作键,因为可以使用索引分配、切片分配或 append() 和 extend() 等方法就地修改列表。

字典中键是唯一的。

user = {'name':'张三', 'age': 20}
user['addr'] = '人民路'    # 添加一个元素
user   #{'name': '张三', 'age': 20, 'addr': '人民路'}
user['name']   #'张三'
user['name'] = '李四'
user   #{'name': '李四', 'age': 20, 'addr': '人民路'}
del user['addr']   #删除
user   #{'name': '李四', 'age': 20}
list(user)    #['name', 'age', 'addr']
sorted(user)   #['addr', 'age', 'name']
'age' in user   #True

可以通过 dict() 构造函数创建字典。

dict([('name': '李四'), ('age': 20), ('addr': '人民路')])    # {'name': '李四', 'age': 20, 'addr': '人民路'}

通过 set 推导式也可以创建字典:

{x: x**2 for x in (2, 4, 6)}     # {2: 4, 4: 16, 6: 36}

当键是简单的字符串时,也可以通过简化的方式的键值对定义字典:

dict(name='abc',age=22)    #{'name': 'abc', 'age': 22}

相关文章

三分钟掌握Python 中最常用的 10 种 Set 方法

Python 中的集合至关重要,也是 Python 中最常用的内置数据类型之一。集合具有一些主要属性。集合中的元素必须是唯一的。套装中不允许有重复项。它们是无序的设置项目不可更改,但您可以删除和添加新...

Python集合类型Set详细总结_python里面集合

(一)Python集合数据类型Set总结-1 1、set特点set 可以过滤重复元素,本身是无序的(元素顺序是混乱的)不重复的示例-1:set = {1,2,2,3,4,4,5,6,7,7}#输出se...

Python基础之Set集合操作_python set取并集

''' 集合是无序和无索引的集合。在 Python 中,集合用花括号编写。 集合set,元素是不可重复的 ''' # 创建集合 demoSet = {'a', 'b', 'c'} p...

Python set_python set和list的区别

Python 也包含有 集合 类型。集合是由不重复元素组成的无序的集。它的基本用法包括成员检测和消除重复元素。集合对象也支持像 联合,交集,差集,对称差分等数学运算。集合结构如下:set1 = {'h...

容易忽略的数据类型:集合(set)_集合set方法

python中数据类型定义明确: 1、字符串 2、布尔类型 3、整数 4、浮点数 5、数字 6、列表 7、元组 8、字典 9、日期这些是我们经常用到的,有一个数据类型:集合,一个很有用的类型,同时也最...

Python 打包与发布:setuptools 和 wheel 的全攻略

Python 项目打包与发布:setuptools 和 wheelPython 提供了强大的工具链,用于将项目打包并分发到包管理器(如 PyPI)。setuptools 和 wheel 是其中的核心工...