本关学习的是两种新的数据类型:列表、字典。

在开始之前先学习一下计算机与数据直接的关系。

计算机有3种方式利用数据:

1、直接使用数据

print('我来了')

2、计算和加工数据

print (1+2+3)

3 、用数据做判断

if i<0:

print('你还没有诞生')

elif a==0:

print('恭喜你出生')

elif a<18:

print('人生即将开始新征程')

else:

print('人生路漫漫')

通过if语句我们可以看到计算机利用数据做逻辑判断。

一、列表

1、什么是列表

students=['A','B','C']

列表名students 赋值号= 列表['A','B','C'] ,一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开。

list1 = ['AA',18,1.70]

print(list1)

输出:['AA',18,1.70]

列表可以包含一切

2、从列表提取单个元素

偏移量:每个元素都有自己对应的位置编号

students = ['a','b','c']

students[0],students[1],students[2]

偏移量是从0开始的

列表名后加带偏移量的中括号,就能渠道相应位置的元素

找出小A,应该如何做呢?

students=['小A' ,'小B','小C']

print(students[0])

输出:

小A

3、从列表提取多个元素

冒号用来截取列表元素的操作叫切片,这种切片的方式可以让我们从列表中取出多个元素

:左右两边的数字指的是列表中元素的偏移量,记得偏移量始终从0开始

list2 = [5,6,7,8,9]

print(list2[:])

# 打印出[5,6,7,8,9]

print(list2[2:])

# 打印出[7,8,9]

print(list2[:2])

# 打印出[5,6]

print(list2[1:3])

#打印出[6,7]

print(list2[2:4])

#打印出[7,8]

切片口诀:左右空,取到头;左要取,右不取

冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素。后半句:冒号左边数字对应的元素要拿,右边的不动

我们要注意一个细节:偏移量取到的是列表中的元素,而切片则是截取了列表的某部分,所以还是列表。

students=['AA','BB','CC']

print(students[2])

print(students[2:])

输出:

CC

['CC']

4、给列表增加/删除元素

如果需要给列表中增加元素,我们就需要用到append()函数给列表增加元素,append的意思是附加,增补。

list3 = [1,2]

list3.append(3)

print(list3)

list3.append([4,5])

print(list3)

输出:

[1,2,3]

[1,2,3,[4,5]]

append()给列表增加元素,每次只能增加一个元素(单个列表也会视作一个元素),列表重的元素可以是字符串、数字等,也可以是列表本身(列表内部支持嵌套),append后的元素,会添加在列表末尾

格式 列表名.append()

删除元素del列表名[元素的索引]

del语句,既能删除一个元素,也能一次删除多个元素

students=['AA','BB','CC','DD']

del students[3]

print(students)

输出:

['AA','BB','CC']

二、字典

1、什么字典

scores={'AA':95,'BB':90,'CC':90}

字典和列表有3个地方是一样的:1.有名称;2.要用=赋值;3.用逗号作为元素间的分隔符。

而不一样的有两处:1.列表外层用的是中括号[ ],字典的外层是大括号{ };

列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接。

比如'AA':95,其中'AA'叫做键(key),95叫值(value),这样唯一的键和对应的值形成的组合,我们就叫做【键值对】

这里需要强调的是,字典中的键具备唯一性,而值可重复。也就是说字典里不能同时包含两个'AA'的键,但却可以有两个同为90的值。

介绍一个函数可以得出一个列表或者字典的长度(元素个数),括号里放列表或字典名称。

students=['AA','BB','CC']

scores={'AA':95,'BB':90,'CC':90}

print(len(students))

print(len(scores))

输出

3

3

2、从字典中提取元素

如果我们想从字典中提取元素,这里靠的是键

scroes={'AA':95,'BB':90,'小刚':90}

print(scores['AA'])

输出:95

3、给字典增加/删除元素

删除字典里键值对 del 字典名[键]

新增键值对的赋值语句 字典名[键]=值

scores = {'AA':95,'BB':90,'CC':90}

del scores['CC']

scores['CC'] = 92

scores['DD'] = 85

print(scores)

输出:

{'AA': 95, 'BB': 90, 'CC': 92, 'DD': 85}

三、列表和字典的异同

1、列表和字典的不同点

一个很重要的不同点是列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的列表。

# 如果==左右两边相等,值为True,不相等则为False。

print(1 == 1)

# 1等于1,所以值为True

print(1 == 2)

# 1不等于2,所以为False

students1 = ['小明','小红','小刚']

students2 = ['小刚','小明','小红']

print(students1 == students2)

scores1 = {'小明':95,'小红':90,'小刚':100}

scores2 = {'小刚':100,'

输出:

True

False

False

True

列表中的数据是有序排列的,而字典中的数据是随机排列的

列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值

2、列表和字典的相同点

在列表和字典中,如果要修改元素,都可用赋值语句来完成

del语句通常是用来删除确定不需要的键值对

支持任意嵌套。列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。

students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]

students这个列表由两个子列表组成,如果要取出小芳,我们需要一层层取出

students[0]:['小明','小红','小刚','小美']

students[1]:['小强','小兰','小伟','小芳']

小芳是students[1]列表里的第三个元素

students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]

print(students[1][3])

输出

小芳

字典嵌套字典

scores = {

'第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},

'第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}

}

print(scores['第一组']['小刚'])

输出

100

列表和字典相互嵌套

# 最外层是大括号,所以是字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移量

students = {

'第一组':['小明','小红','小刚','小美'],

'第二组':['小强','小兰','小伟','小芳']

}

print(students['第一组'][3])

#取出'第一组'对应列表偏移量为3的元素,即'小美'

# 最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的键

scores = [

{'小明':95,'小红':90,'小刚':100,'小美':85},

{'小强':99,'小兰':89,'小伟':93,'小芳':88}

]

print(scores[1]['小强'])

#先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。

输出

小美

99

这节课知识量有点大,需要更多的理解和联系,一起加油。

python字典里可以放列表吗_学习python之列表及字典相关推荐

  1. python爬取知乎话题广场_学习python爬虫---爬虫实践:爬取B站排行榜2(爬取全部分类排行榜、利用pygal库作图)...

    前面我们爬取了B站上全站的排行榜,详细见:魏勇:学习python爬虫---爬虫实践:爬取B站排行榜​zhuanlan.zhihu.com 一.爬取全部分类排行榜 我们观察一下B站排行榜,那里还有番剧排 ...

  2. python编程的基本方法有哪些_学习Python编程的11个入门技巧

    我们非常激动,您决定开始学习Python的旅程!我们从读者那里收到的最常见问题之一是"学习Python的最佳方法是什么?" 我相信学习任何编程语言的第一步就是要确保您了解如何学习. ...

  3. python初学往哪个方向比较容易_学习Python应该往哪个方向发展?

    先回答题主正题,学完Python有这些方向可发展. 第一:Python web开发 学完Python可以做web开发,因为现在中国学习Python的比较少,而招聘Python的却非常的多.所以Pyth ...

  4. python编程基础的阅读心得体会_学习Python的一些心得体会(熊逸飞)

    PART 2 第一章作者没有抛出过多内容,只是简单介绍了Python作为编程语言的一些比较优势,然后介绍它的历史和创始人的故事.从90年首次发布到现在经历了十几次优化才有了如今我们使用的Python, ...

  5. 从零开始学python大数据与量化交易下载_学习python有什么推荐书?

    先简单回答下题主的两个追问问题.问题1:Python几乎无所不能,从数据分析.软件开发.Web开发.数据库开发.系统开发,到游戏开发,网络爬虫,再到让Python傲视群雄的机器学习.不同的学习目标,当 ...

  6. 学python要不要先自学c语言_学习Python之前是否需要学习C语言

    首先,学习Python之前并不需要学习C语言,Python本身是比较适合作为入门编程语言来学习的,一方面Python的语法结构比较简单清晰,实验也相对比较容易完成,这会逐渐增强初学者的学习信心,另一方 ...

  7. 下列选项中不符合python语言变量命名规则的是_学习Python第二日--基本概念和类型...

    编程语言分类:解释型语言和编译型语言.解释型语言不会产生额外的文件,运行时一行一行的翻译.编译型语言需要产生一个额外的文件,是电脑能够识别的内容,运行后将产生额外的文件. 变量是可变的量,是它的值可以 ...

  8. python小型编程_学习Python编程的11个资源

    用 Python 写代码并不难,事实上,它一直以来都是被声称为最容易学习的编程语言.如果你正打算学习 web 开发,Python 是一个不错的选择,甚至你想学游戏开发也可 以从 Python 开始,因 ...

  9. 如何使用python编程抢京东优惠券 知乎_学好Python爬取京东知乎价值数据

    原标题:学好Python爬取京东知乎价值数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这 ...

最新文章

  1. 抄代码的时候总是遇到原始数据应该长什么样的问题??
  2. 利用JS将页面指定部分存为HTML页
  3. hdu4888 最大流(构造矩阵)
  4. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建--转载
  5. 虚拟现实大会ChinaVR2015报告之-电子试衣和三维人体建模
  6. java 抛出异常 返回值_java通过抛异常来返回提示信息
  7. boost::timer::auto_cpu_timer相关的测试程序
  8. 【SignalR学习系列】7. SignalR Hubs Api 详解(JavaScript 客户端)
  9. ajax 更新模型数据_DuangDuangDuang,重点来啦!高薪全靠它——百战Web前端课程更新03.11...
  10. NUC1016 斐波那契数列【打表】
  11. 以数制转换问题讲解栈数据结构的基本概念及其在计算机中的应用
  12. 关于Redis缓存和数据库一致性问题
  13. 使用 Pandas 与 Matplotlib 分析科比职业生涯数据-CSDN公开课-专题视频课程
  14. linux系统安装五笔输入法,Linux下安装五笔输入法
  15. 用Gromacs重复文献计算TIP4P介电常数谱
  16. 安装并使用Ghidra的Eclipse插件的过程
  17. 团体程序设计天梯赛 -- 练习集 (L1合集)
  18. Crossplane 和 Terraform 的区别
  19. 旋转矩阵(一):旋转矩阵能让什么东西旋转?
  20. C语言结构体-火车票查询程序

热门文章

  1. iphone7像素_iPhone 7能否再战三年?这几点因素你得考虑到!
  2. html 的empty属性,你未必知道的CSS小知识:你知道table里的empty-cells属性吗?
  3. 《深度学习的数学》二刷总结
  4. LINUX驱动注册过程失败处理不当引起的恶果
  5. Android4.0 修改系统屏幕分辨率方法
  6. 带有匹配滤波器的雷达信号调制和脉冲压缩技术的Matlab程序
  7. stm32 keil下不重启进行仿真寻找bug原因
  8. 从零开始的AI·决策树原来这么好理解(附实例代码)
  9. Java调用WebService接口实现发送手机短信验证码功能
  10. 卡巴斯基:乌云反思 企业安全堪忧