Python组合数据类型

序列类型

字符串(str)

列表(list)

列表则是一个可以修改数据项的序列类型,使用也最灵活
列表(list)是包含0个或多个对象引用的有序序列,属于序列类型。与元组不同,列表的
长度和内容都是可变的,可自由对列表中数据项进行增加、删除或替换。列表没有长度限制,
元素类型可以不同,使用非常灵活。

元组(tuple)

元组是包含0个或多个数据项的不可变序列类型。元组生成后是固定的,其中任何数据项不能替换或删除。
一旦创建就不能被修改

1
2
3
creature="cat","dog","tiger","human"
print(creature)
##output:('cat','dog','tiger','human')

元组可以嵌套

1
2
3
4
5
6
7
8
color=("red",0x001100,"blude",creature)
print(color)
##output:('red', 4352, 'blude', ('cat', 'dog', 'tiger', 'human'))

print(color[2])
print(color[-1][2])
##output:blude
## tiger

元组的解包与组包

1
2
3
4
5
6
7
8
9
tup0=(1,2,3)
x,y,z=tup0 ##元组解包(x,y,z)=tup0
b=x,y,z ##元组组包b=(x,y,z)
print(tup0)
print(b)
print(x)
##output:(1, 2, 3)
## (1, 2, 3)
## 1

赋值一个元素给元组

1
2
3
t=0, ##','不可省略
print(type(t))
##output:<class 'tuple'>

赋值多个元素

1
2
3
4
t=0,1
a,b=t
print(a,b)
##output:0 1

集合类型

集合

集合中元素不可重复,元素类型只能是固定数据类型,例如:整数、浮点数、字符串、元组等,
列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。
由于集合是无序组合,它没有索引和位置的概念,不能分片,集合中元素可以动态增加或删除。
集合用大括号({})表示,可以用赋值语句生成一个集合。

1
2
3
4
5
6
s={425,"BIT",(10,"CS"),424}
print(s)
T={425,"bit",(10,"CS"),424,425,"BIT"}
print(T)
##output:{'BIT', 425, (10, 'CS'), 424}
## {424, 425, (10, 'CS'), 'bit', 'BIT'}

set(x)函数

由于集合元素是无序的,集合的打印效果与定义顺序可以不一致。
由于集合元素独一无二,使用集合类型能够过滤掉重复元素。set(x)函数可以用于生成集合。

1
2
3
4
5
6
7
8
w=set('apple')
print(w)

v=set(("cat","dog","tiger","human","cat","human"))
print(v)

##output:{'p', 'l', 'e', 'a'}
##output:{'dog', 'cat', 'tiger', 'human'}

映射类型

映射类型是“键-值”数据项的组合,每个元素是一个键值对,即元素是(key, value),键和值通过冒号连接,
不同键值对通过逗号隔开。字典是集合类型的延续,各个元素没有顺序之分元素之间是无序的。
键值对(key, value)是一种二元关系。在python中,映射类型主要以字典(dict)体现。

字典

创建字典

1
2
3
4
Dnew={}  ##创建空字典
Dnew["2*3"]=6 ##添加元素
print(Dnew)
##output:{'2*3': 6}

查找

1
2
3
Dcountry={"China":"BeiJing","America":"Washington","France":"Paris"}
print(Dcountry["China"])
##output:BeiJing

访问和赋值

1
2
3
4
Dcountry={"China":"BeiJing","America":"Washington","France":"Paris"}
Dcountry["China"]="Big BeiJing"
print(Dcountry)
##output:{'China': 'Big BeiJing', 'America': 'Washington', 'France': 'Paris'}

增加新元素

1
2
3
4
Dcountry={"China":"BeiJing","America":"Washington","France":"Paris"}
Dcountry["Britain"]="London"
print(Dcountry)
##output:{'China': 'BeiJing', 'America': 'Washington', 'France': 'Paris', 'Britain': 'London'}

字典类型的操作

字典中的元素以键信息为索引访问
字典是一个键值对的集合,该集合以键为索引,一个键信息只对应一个值信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
##<d>.keys()  返回所有的键信息
##<d>.values() 返回所有的值信息
Dcountry={"China":"BeiJing","America":"Washington","France":"Paris"}
print(Dcountry.keys(),Dcountry.values(),sep=":") ##sep,以 ":"为分隔符
##output:dict_keys(['China', 'America', 'France']):dict_values(['BeiJing', 'Washington', 'Paris'])

##<d>.items() 返回所有的键值对
print(Dcountry.items())
##output:dict_items([('China', 'BeiJing'), ('America', 'Washington'), ('France', 'Paris')])

##<key> in <d> 如果键在字典中返回True,否则返回False
print("China" in Dcountry,"BeiJing" in Dcountry,sep=":")
##output:True:False

##<d>.get(<key>,<default>) 键存在则返回相应值,否则返回默认值
print(Dcountry.get("China","GuangZhou"),Dcountry.get("Australia","Sydney"),sep=" ")
##output:BeiJing Sydney

##del<d>[<key>]删除字典中某一键值对
del Dcountry["America"]
print(Dcountry)
##output:{'China': 'BeiJing', 'France': 'Paris'}

##<d>.clear() 删除所有的键值对
print(Dcountry.clear())
##output:None

for..in语句对其元素遍历

1
2
3
4
5
6
7
8
9
10
11
12
Dcountry={"China":"BeiJing","America":"Washington","France":"Paris"}
for key in Dcountry:
print(ket,end=' ')
##output:China America France

for key in Dcountry:
print(key,Dcountry.get(key),sep=":",end=" ")
##output:China:BeiJing America:Washington France:Paris

for k,v in Dcountry.items():
print(k,v,sep=":",end=" ")
##output:China:BeiJing America:Washington France:Paris