现实世界中总是存在一组一组的事物,如俄罗斯方块、游戏中的技能、世界杯总决赛(8个小组,每组4个队)
一、python中如何表示“组”的概念
1、列表
1)定义
[1,2,3,4,5]
type[1,2,3,4,5]
2)特性
- 组成列表的元素可以是不同的数据类型
如['hello','world',1,9,True,False]
- 列表的元素可以是列表,即嵌套列表。在其他语言也成为二维数组
如[[1,2],[3,4],['a','b']]
3)基本操作
- 访问某个元素——下标
- 访问某些元素——切片
- 更改元素的值——下标赋值
- 追加——append()
- 合并——+
二、元组
1、定义
(1,2,3,4,5)
2、特性
1)元素可以是不同的类型
2)元素可以是元组,即嵌套元组
3、基本操作
1)访问元素
tuple_a[0]
tuple_a[0:2]
2)运算
tuple_a+tuple_b
tuple_a*3
4、元组与列表的区别
列表:可更改元素的值
元组:不可更改元素的值
5、python中的一个习惯
int 表示 整型
str 表示 字符串
list 表示 列表
tuple 表示 元组
6、一个奇怪的现象
>>> type((1)) <type 'int'> >>> type(('hello')) <type 'str'>
原因是(1)、('hello')中的()表示的是数学运算,类似(1+1)*2
那么,如何定义只有一个元素的元组?
(1,)
如何定义一个空元组?
()
>>> type((1,)) <type 'tuple'> >>> type(()) <type 'tuple'>
三、序列总结
关键是序列的“序”
1、python中对“组”的学术定义是“序列”
2、str、list、tuple都是序列
3、序列共有的操作
1)访问元素
>>> 'hello world'[0] 'h'
2)切片
>>> 'hello world'[0:5] 'hello' >>> 'hello world'[0:-1] 'hello worl' >>> 'hello world'[0:-7] 'hell'
3)运算+*
>>> 'hello'+'world' 'helloworld' >>> 'hello'*3 'hellohellohello'
4)是否包含某个元素 in /not in
>>> 'h' not in 'hello world' False >>> 'h' in 'hello world' True
5)获取长度 len()
>>> len([1,2,3,4,5]) 5 >>> len('hello world') 11
6)min max最值
>>> min([1,3,7]) 1 >>> max('hello world') 'w'
4、字符串中的字母可比较大小,根据ASCII码比较
ord()查看ASCII码
>>> ord(' ') 32 >>> ord('d') 100 >>> ord('w') 119
五、set集合
重要特性“无序”
1、定义
{1,2,3,4}
>>> type({1,2,3,4})
<type 'set'>
2、特性
1)无序
2)不重复
>>> {1,2,1,2,1,2}
set([1, 2])
3、操作
1)len()获取长度
2)in、not in包含
3)运算
- 差集
& 交集
| 并集/合集
4)如何表示一个空集合
set()
>>> type(set()) <type 'set'> >>> len(set()) 0
>>> type({}) <type 'dict'>
六、字典
1、定义
{key1:value1,key2:value2}
字典的本质是集合,无序
字典和集合的区别
1)元素构成不同:dict是key-value对,set的元素是str、int等基本数据类型
2、特性
1)元素是键值对
2)本质是集合,无序
3、操作
1)通过key访问value
dict_a['key1']
2)key不能重复,重复的元素会被删除
>>> {'name':'a','name':'b','name':'c'} {'name': 'c'} >>> {'name':'a','name':'b','name':'a'} {'name': 'a'} >>> {'name':'a','name':'b','name':'1','sort':1} {'name': '1', 'sort': 1}
3)value可以是任意的数据类型,甚至dict,即字典可嵌套
4)key必须是不可变的数据类型
int、str、bool、tuple不可变的类型
list可变的类型
5)空字典如何定义?{}
>>> type({})
<class 'dict'>
2、特性
3、操作