本帖最后由 l2430478 于 2020-12-19 21:05 编辑
第4章 Python中表示“组”的概念与定义,我已经看完,里面许多地方需要打代码测试效果,我全部记录了下来,不用大家再一个一个打代码。更重要的是,我把重要知识点进行描述,大家看了我的自学笔记,可以省去看视频时间。
视频教程请看https://www.52pojie.cn/thread-1331634-1-1.html 我不在重复发。
下面请大家看第4章笔记:
4-1列表的定义
当数据成组出现时候,我们就需要通过列表形式进行表达。
举例:[1,2,3,4,5]
那么我们 可以使用 type([1,2,3,4,5]) ,回车后,出现<class 'list'>
type(读泰普)告诉我们这是个list(读利斯特)列表类型 class(读可拉斯)是类的意思
列表的特性:
可以数字 可以字符 可以数字加字符
type([1,2,'hello',4,5,'word'])
[[1,2],["hello","word"],[True,False]]
type([[1,2],["hello","word"],[True,False]]) 可以叫二维列表 也可以叫嵌套列表。
4-2 列表的基本操作:
['雷电术','灵魂火符','五雷轰','施毒术'][2] 回车后'五雷轰'
['雷电术','灵魂火符','五雷轰','施毒术'][0:2] 回车后 ['雷电术', '灵魂火符']
['雷电术','灵魂火符','五雷轰','施毒术']+['召唤骷髅']
['召唤骷髅']*3 回车后 ['召唤骷髅', '召唤骷髅', '召唤骷髅']
['雷电术','灵魂火符']-['灵魂火符'] 会报错
4-3元组
[['巴西','印度','小日本','朝鲜','韩国','阿根廷','埃及','罗马'],['等'],['等'],['共'],['8'],['个'],['小'],['组']]
用数字简化
(1,2,3) +(4,5,6)
那么我么你发现列表和元组有很多共同点,那么元组和列表的区别是什么呢?
1、列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。
2、元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。
3、元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。
4、这些区别结实率两者在设计哲学上的不同:列表可被用于保存多个互相独立对象的数据集合,元组用于描述一个不会改不安的事务的多个属性
5、列表一旦创建了我们就可以根据自己的需要随意改变它的内容。
6、元组是固定且不可改变的。这意味着一旦元组被创建,和列表不同,它的内容无法被修改或它的大小也无法被改变。
type((1,2,3)) 回车得 <class 'tuple'> tuple(读他破儿)表示元组
type(1) 回车得 <class 'int'> int(读银特) 表示整形
type([1,2,3]) 回车得 <class 'list'> list(读利斯特)表示列表
type('hello') 回车得 <class 'str'> 表示字符串
type((1)) 代表一个元组 回车得 <class 'int'>
type(('hello') ) 代表一个元组 回车得 <class 'str'>
4-4
序列总结
int,float,bool,str,list,tuple
str,list,tuple 都属于序列
公有的操作有
<class 'str'> 的 'hello'[2] 回车得 'l'
<class 'list'>的 [1,2,3][2] 回车得 3
<class 'tuple'> 的(1,2,3)[2] 回车得 3
说明序列的 每一个元素都将被分配一个序号
切片:
[1,2,3,4,5][-1:] 回车得 5
'hello word'[0:8:2] 回车得 'hlow'
3 in [1,2,3,4,5,6] 回车得True
10 in [1,2,3,4,5,6] 回车得 False
3 not in [1,2,3,4,5,6] 回车得False
len([1,2,3,4,5,6]) 回车得 6 len表示汇总一共有几个字符
len(['hello word']) 回车得 1
len('hello world') 回车得 11
max([1,2,3,4,5,6]) 回车得 6 max 表示最大值
max('hello world') 回车得 'w'
min('hello world') 回车得 '空格' min表示最小 (a-z)
min('helloworld') 回车得 'd'
每个字符都有 asc11(读阿斯克码)
ord('w') 回车得 119
ord(' ') 回车得32
ord('d')回车得100
4-5 set集合
都属于集合set 无序
type({1,2,3,4,5,}) 回车得 <class 'set'> set 是无序的
{1,2,3,4,5,}[1] 会报错
{1,1,2,2,3,3,4,4}回车得 {1, 2, 3, 4} 会去掉重复
len({1,1,2,2,3,3,4,4}) 回车得 4
len({1,2,3,4}) 回车得 4
1 in {1,1,2,2,3,3,4,4} 回车得True
{1,2,3,4,5,6}-{5,6} 回车得 {1, 2, 3, 4} -排除
{1,2,3,4,5,6}&{5,6} 回车得 {5, 6} &交集
{1,2,3,4,5,6} | {3,4,7} | 合集或者并集
那么如何定义一个空的集合?
type({ }) <class 'dict'> 是不行的
set() 来表示空的集合 type(set()) 回车得 <class 'set'>
len(set()) 回车得0
4-6 dict字典
Key表示关键字(雷同汉语字典里 ABC首字母 )
Value表示 相应值
很多个Key和Value,集合类型(set),序列
定义字典最基本方式
{key1:value1,key2:value2......}
举例 {1:1,2:2,3:3}
type({1:1,2:2,3:3}) <class 'dict'>
我们可以给['雷电术','灵魂火符','五雷轰','施毒术']进行优化
{'Q':'雷电术','W':'灵魂火符','E':'五雷轰','R':'施毒术'}[0]
但是还会报错,因为是一个无序的
{'Q':'雷电术','W':'灵魂火符','E':'五雷轰','R':'施毒术'}['Q']
回车会得到 '雷电术'
如果有一个重复得,那么
{'Q':'雷电术','Q':'灵魂火符','E':'五雷轰','R':'施毒术'}['Q']
回车会得到 '灵魂火符'
虽然没有报错,但是已经错了。
我们输入{'Q':'雷电术','Q':'灵魂火符','E':'五雷轰','R':'施毒术'}
会看到仅仅剩下3个 {'Q': '灵魂火符', 'E': '五雷轰', 'R': '施毒术'}
{1:'雷电术','1':'灵魂火符','E':'五雷轰','R':'施毒术'}
回车后得到
{1: '雷电术', '1': '灵魂火符', 'E': '五雷轰', 'R': '施毒术'}
没有报错,我么可以发现 不仅仅是字符,还可以是其他
我们再加一个字典进去,
{1:'雷电术','1':'灵魂火符','E':{1:1},'R':'施毒术'}
系统还没有报错。依然是给字典
type({1:'雷电术','1':'灵魂火符','E':{1:1},'R':'施毒术'})
回车得<class 'dict'>
{[1,2]:'雷电术','1':'灵魂火符','E': '五雷轰','R':'施毒术'}
会报错
key:必须是不可变的类型
另分享一个工具 思维导图 xmind 能够将描述图形化,便于使用。 我上面的图片就是利用这个画的,非常方便。 您值得拥有!
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1293729&highlight=xmind
|