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 总结
python3笔记 4 Python中表示'组'的概念与定义