Python学习记录-类型总结

Python的基本数据类型

基本数据类型:字符串,数字,列表,元组,字典;

归类:

1.是否可变

a.可变类型:列表,字典

b.不可变:字符串,数字,元组

2.访问顺序:

a.直接访问:数字

b.顺序访问:字符串,列表,元组

c.映射:字典

********************************************************

集合

由不同元素组成的集合(去重),无序的,可Hash值,可以作为字典的Key的一类值

例子:

第一种方式:a={1,3,2,(1,3,2)}

第二种方式:b=set("zenghuaguang")
通过关键字创建不可变的集合:frozenset()


集合的元素必须是不可变的类型(可Hash的类型):数字,字符串,元组

 集合的操作:

#集合的操作
s={'s',1,'6','p'}
#复制
s1=s.copy()
#删除-随即删除
s.pop()
#指定删除,如果要删除元素的不存在集合中,抛出异常
s.remove('s')
#删除指定元素,如果要删除的元素不存在,不会抛出异常
s.discard('oooo')
新增一个元素
s.add('Hello world')    --把Hello world 当成一个元素插入集合
s.update('Hello world')  --把Hello world 迭代后一次插入集合
清空
s.clear()    --清空集合的内容
del s      --内存都会清空

包含,等于
set('leo')==set('leo')     --True
set('Leo')<set('LeoLeosss')  --True
取交集
set('Leo') or set('Mic-Leo')  a.intesection(b)
取并集
set('Leo') and set('Mic')    a.union(b)
取差集
                   a.difference(b)





 -----------------------------------------------------------------------------

元组

元组是固定且不可改变的。这意味着一旦元组被创建,和列表不同,它的内容无法被修改或它的大小也无法被改变。

虽然它们不支持改变大小,但是我们可以将两个元组合并成一个新元组。这一操作类似列表的resize操作,但我们不需要为新生的元组分配任何额外的空间:

如果我们将其与列表的append操作比较,我们会看到它的复杂度是O(n)而不是列表的O(1)。这是因为对元组每添加一个新元素都会有分配和复制操作,而不是像列表那样仅在额外的空间耗尽时发生。所以元组并没有提供一个类似append的自增操作,任意两个元组相加始终返回一个新分配的元组。

1、元组声明与赋值

声明一个元组并赋值的语法与列表相同,不同之处是元组使用小括号,列表使用方括号,元素之间也是用英文逗号分隔。需要注意的是,当元组只有一个元素时,

需要在元素的后面加一个英文逗号分隔符,以防止与表达式中的小括号混淆。这是因为小括号既可以表示元组,又可以表示表达式中的优先级算符,这就容易产生歧义。

2、 元组的访问

元组的访问和列表相同,可以直接使用下标索引访问元组中的单个数据项,也可以使用截取运算符访问子元组。访问运算符包括“[]”和“[:]”运算符,用于访问元组中的单个数据项,或者一个子元组。

3、 如何更新元组

元组是不可修改类型,虽然在程序运行过程中无法对元组的元素进行插入和删除运算。但元组可以通过再构造一个新的元组替换旧的元组,来实现元素的插入和删除

4、 元组的合并

可以把多个元组合并成一个元组,合并后的元组元素顺序保持不变。合并后的元组为一个新的元组,原有的元组保持不变。

5、 元组的遍历

元组的遍历方式和列表相同,都是应用for循环语句遍历元组的元素。

6、 操作元组的常用方法

和列表一样,适用于列表的方法也同样适用于元组的操作。但由于元组的不可修改特性,用于列表的排序、替换、添加等方法,在元组中不能使用。可以使用的主要方法有计算元组个数、求元组中最大值、求元组中最小值等方法。

 

 

7、 元组的不可修改特性

元组的不可修改特性可能会让元组变得非常不灵活,因为元组作为容器对象,很多时候需要对容器的元素进行修改,这在元组中是不允许的。元组可以说是列表数据的一种补充,数据的不可修改性在程序设计中也是非常重要的。例如,当需要将数据作为参数传递给API,但不希望API修改参数时,就可以传递一个元组类型;再如,当需要定义一组Key时,也可以采用元组类型。因此可以说元组和列表是互为补充的数据类

 

#字符串

 Format

tpl="I am {:s},age{:d}".format("Leo",18)
# *号的使用:引用元组或者引用列表
tpl="I am {:s},age{:d}".format(*["Leo",10])

# **号的使用:引用字典
tpl="I am {name},{age}".format(**{"name":"Leo","age":18})



posted @ 2019-11-20 22:30  朗如风9011  阅读(145)  评论(0)    收藏  举报