第三章-2-数据类型补充(字典,列表,字符串)
本节对应书本P72-P74
==========列表==========
列表(list)
列表是一种有序的集合
===创建列表===
列表名 = [元素1,元素2]
用中括号括起来,用逗号分隔元素与元素
比如,我们可以用一个列表来存储班级中学生的名字
classmate = ['卡','卡卡','卡夫卡']
classmate就是一个列表数据类型的变量
当然,列表中存储的元素类型并没有限制
test=['123',123,3.0,True]
===访问列表中的元素===
可以用索引来访问列表中每一个位置的元素
索引包括正索引和负索引
正索引:从0开始,从左到右依次递增
如我们创建一个列表list1,用于存储各种颜色
list1 = ['red','green','blue','yellow','white','black']

如何访问对应元素?
通过 列表名[索引]

负索引:从-1开始,从右到左依次递减


当索引超出范围时,python会报错,如下
list index out of range:列表索引超出范围

![]()
所以要确保索引不要越界
===切片操作===
我们可以可以通过
列表名[开始元素序号:结束元素序号:步长]
来访问一定范围内的多个元素,其中步长默认为1,开始序号默认为左端点
如下图nums[2:7]等价于nums[2:7:1];
可以先写下开始和结束 2…7
然后以步长为间隔填补之间的空隙
2…3…4…5…6…7
要牢记,python中涉及步长的部分绝大多数符合‘顾头不顾尾原则‘;所以我们要舍去尾索引7
因此最终得到的索引为2,3,4,5,6
取出的是nums列表中索引从2到6的元素组成的子列表
[30,40,50,60,70]

【例题】
当步长为负时又会发生什么呢?我们依然创建nums列表并赋值
nums=[10,20,30,40,50,60,70,80,90]
请描述nums[8:5:-1]会返回什么?
答案:[90,80,70]
解析:
先写下头与尾
8…..5
用步长为间隔填补其中的空隙
8…7…6…5
顾头不顾尾,舍去5
所以得到索引8,7,6
取出对应的[90,80,70]子列表
==========字典==========
字典(dict,全称dictionary)
字典中存储的是一个个的键-值对(key-value)
===创建字典===
字典名 = {key1 :value1,key2 :value2,key3:value3}
字典中的每个键值key:value对用冒号分隔,每个对之间用逗号分隔,整个字典包括在花括号中
注意
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
我们创建一个字典实例,键用于存储科目而值用于存储对应的平均分
score={'语文':80,'数学':77.9,'技术':87.4}
===访问字典里的值===
可以通过键来访问字典里的值
字典名[键]

【例题】
请取出如下字典中的 ‘wow’
dict = {'1':'wow'}
答案:dict['1']
解析:需要注意的是dict字典中存放的了一对键值对;其中键是字符串类型的1而值是字符串形式的wow;因此访问'wow',要通过 【字符串】类型的1访问
同理
创建如下字典
Dict = {1:'wow'}
通过Dict[1]访问'wow';此处D大写(变量命名规则-区分大小写),1是整型的1
===列表字典嵌套===
列表嵌套列表
列表中的元素还可以是另一个列表
a=[1,'he',['k','p','i'],1.2]
列表a中一共有4个元素
1和'hehe'和['k','p','I']和1.2
其中a[2]是一个列表
拆开写更好理解
b=['k','p','i']
a=[1,'he',b,1.2]
要取到'k'可以用b[0]或者a[2][0]
列表嵌套字典
列表中的元素还可以是一个字典
a=[1,'he',{'xixi':'getdaze'},1.2]
拆开写
b={'xixi':'getdaze'}
a=[1,'he',b,1.2]
显然,为了访问'getdaze'可以用b['xixi']或者a[2]['xixi']
【例题】
取出如下字典中的'测试'和'例子'
test={1:{'haha':'测试'},'o':[1,'例子']}
答案:
1.test[1]['haha']
2.test['o'][1]或者test['o'][-1]
解析:
1中第一个中括号中的[1]是字典的键,第二个中括号中的['haha']也是字典的键
2中第一个中括号中的['o']是字典的键,第二个中括号中的[1]或[-1]是列表的索引
==========字符串==========
对于字符串,我们也可以通过索引取出元素或是进行切片操作
如创建以下字符串并通过索引取出元素

切片操作

【例题】
创建如下字符串,回答如下操作结果

#1
结果为','
#2
结果为'[2]'
解析:
写下开头和结尾索引0…8用步长为间隔填满空隙
0…3…6…8顾头不顾尾
得索引为0,3,6
得对应子字符串为'[2]'
#3
结果为'cba'
写下开头和结尾索引-2…-7用步长为间隔填满空隙
-2…-4…-6…-7顾头不顾尾
得索引为-2,-4,-6
得对应子字符串为'cba'

浙公网安备 33010602011771号