python3笔记 4 Python中表示'组'的概念与定义
4-1 列表的定义
列表是可变的
>>> type([1,2,3,4,5,6])
<class 'list'>
>>> type(['hello',1,2,3])
<class 'list'> //列表中可以有不同的数据类型
>>> type([[1,2],[3,4],[True]])
<class 'list'> //列表中嵌套列表,二维数组,python中叫做嵌套列表
4-2 列表的基本操作
访问列表中的某一个元素:
>>> ["1","2",3,4][0]
'1' //得到的是列表中的一个元素
>>> ["1","2",3,4][0:2]
['1', '2']
>>> ["1","2",3,4][-1:]
[4] //得到的是一个新的列表
两个列表拼合:
>>> [1,2,3,4] + [5,6,7,8]
[1, 2, 3, 4, 5, 6, 7, 8]
列表元素重复:
>>> [1,2,3,4] * 3
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
列表中没有减法
4-3 元组
元组是不可变的
使用小括号定义元组
>>> (1,-1,True)
(1, -1, True)
>>> type((1,2,3))
<class 'tuple'>
>>> type((1))
<class 'int'>
访问等行为与列表保持一致
4-4 序列总结
>>> type([1])
<class 'list'>
>>> type((1))
<class 'int'> //小括号既能表示元组也能表示运算优先级的括号,有歧义
>>> type((1,))
<class 'tuple'> //去除歧义
>>> type(())
<class 'tuple'> //空元组
int、float、bool、str、list、tuple
str、list、tuple都可以看作序列,序列共有的特性:每个元素都将被分配序号,且都可以切片
>>> "hello world"[0:8:2]
'hlow' //三个数字的切片
判断一个元素是否在一个序列中:in
>>> 3 in [1,2,3,4,5]
True
>>> 10 in [1,2,3]
False
>>> 3 not in [1,2,3,4,5]
False //判断不在序列中用 not in
列表长度len()
>>> len([1,2,3,4,5])
5
求最大元素max(),最小值为min()
>>> max([1,2,3,4])
4
>>> min('hello world')
' ' //输出空格
>>> max('hello wordl')
'w' //ASCII码大小
>>> ord('w')
119 //转换ASCII码
4-5 set集合
集合是无序的,序列是有序的
不支持下标索引,不支持切片
>>> type({1,2,3,4,5,6})
<class 'set'>
集合是不重复的
>>> {1,1,2,2,3,3,4,4}
{1, 2, 3, 4}
集合支持长度判断len()
>>> len({1,2,3,3})
3
集合支持in/not in
>>> 1 in {1,2,3}
True
集合支持求差集、交集、并集的操作
>>> {1,2,3,4,5,6} - {3,4}
{1, 2, 5, 6} //差集
>>> {1,2,3,4,5,6} & {3,4}
{3, 4} //交集
>>> {1,2,3,4,5,6} | {3,4,7}
{1, 2, 3, 4, 5, 6, 7} //并集
定义空集set()
>>> type({})
<class 'dict'> //不是set类型,是空的字典类型
>>> type(set())
<class 'set'> //是空集
4-6 dict字典
key-value,最多的操作是通过key找到value
一个字典可以由很多key/value构成,是无序的,和集合set行为很像
基本定义方式:{key1:value1,key2:value2,....}
>>> type({1:1,2:2,3:3})
<class 'dict'>
>>> type({'q':'一技能','w':'二技能','e':'三技能','r':'大招'})
<class 'dict'> //一个有意义的字典
通过key找到value
>>> {'q':'一技能','w':'二技能','e':'三技能','r':'大招'}['q']
'一技能'
>>> {'q':'一技能','q':'二技能','e':'三技能','r':'大招'}['q']
'二技能' //相同的key会将前面的key取消,故一个字典内不能有相同的key
>>> {'q':'一技能','q':'二技能','e':'三技能','r':'大招'}
{'q': '二技能', 'e': '三技能', 'r': '大招'} //自动取消
字典key可以是字符串和数字,且数字1和字符串'1'识别为两个不同的key
>>> {1:'一技能','1':'二技能','e':'三技能','r':'大招'}
{1: '一技能', '1': '二技能', 'e': '三技能', 'r': '大招'}
value可以取任意数据类型(甚至还能是一个字典)
key必须使不可变的类型:int、str都是属于不可变的类型
4-7 总结