Python-05-数据类型 下 | Python 主题月

110 阅读2分钟

本文正在参加「Python主题月」,详情查看 活动链接

未完继续

Tuple

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

元组中的元素类型也可以不相同:

>>> t = (1,2,3,['a'],{'name':'phyger'})
>>> t
(1, 2, 3, ['a'], {'name': 'phyger'})
>>> t[1:]
(2, 3, ['a'], {'name': 'phyger'})
>>> t[:-2]
(1, 2, 3)
>>> t*2
(1, 2, 3, ['a'], {'name': 'phyger'}, 1, 2, 3, ['a'], {'name': 'phyger'})
>>> t[0]
1
>>> t[0]=2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

>>> p = (1)
>>> p
1
>>> type(p)
<class 'int'>
>>> q = (1,)
>>> type(q)
<class 'tuple'>
>>> q
(1,)
>>>

注意: 元组中的元组不可变,但是可以包含可变类型的元素,单个元素的元组有特殊的地方,记得加逗号“,”

Set

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。

基本功能是进行成员关系测试和删除重复元素。

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

创建格式:

>>> st = {'xian','beijing','chengdu'}
>>> type(st)
<class 'set'>

>>> tt = set('xian')
>>> tt
{'x', 'i', 'a', 'n'}
>>> type(tt)
<class 'set'>

>>> bb = set('abcdaaa')
>>> bb
{'c', 'd', 'a', 'b'}
>>>

集合运算:

>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1-s2      #差集
{1, 2}
>>> s1|s2      #或
{1, 2, 3, 4, 5, 6}
>>> s1&s2      #与
{3, 4}
>>> s1^s2      #与非
{1, 2, 5, 6}
>>>

Dictionary

字典(dictionary)是Python中另一个非常有用的内置数据类型。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

>>> d = {'name':'phyger'}
>>> d
{'name': 'phyger'}
>>> type(d)
<class 'dict'>
>>> d['age']=18
>>> d
{'name': 'phyger', 'age': 18}
>>> d.keys()
dict_keys(['name', 'age'])
>>> d.values()
dict_values(['phyger', 18])
>>> d['age']=19
>>> d
{'name': 'phyger', 'age': 19}
>>> d.clear()
>>> d
{}
>>>

数据类型转换

number2string

string = str(number)

>>> res = str(2)
>>> print(res.type(res))
2 <class 'str'>

string2number

number= int(string)

>>> res = int('2')
>>> print(res,type(res))
2 <class 'int'>

tuple2list

>>> y = (1,2,3)
>>> print(type(y))
<class 'tuple'>
>>> li = list(y)
>>> print(li,type(li))
[1, 2, 3] <class 'list'>

list2tuple

>>> x = [1,2,3]
>>> res = tuple(x)
>>> print(res,type(res))
(1, 2, 3) <class 'tuple'>