《Python编程:从入门到实践》笔记(二)

一、字典

在Python中,字典是一系列键—值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。在Python中,字典用放在花括号{}中的一系列键—值对表示。键—值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键—值对之间用逗号分隔。在字典中,你想存储多少个键—值对都可以。

1.访问字典中的值

要获取与键相关联的值,可依次指定字典名和放在方括号内的键。

2.添加键—值对

字典是一种动态结构,可随时在其中添加键—值对。要添加键—值对,可依次指定字典名、用方括号括起的键和相关联的值。

Python不关心键—值对的顺序,而只关心键和值之间的关联关系。

3.先创建一个空字典

4.修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。

5.删除键—值对

对于字典中不再需要的信息,可使用del语句将相应的键—值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

6.由类似对象组成的字典

7.遍历字典

要编写用于遍历字典的for循环,可声明两个变量,用于存储键—值对中的键和值。for语句的第二部分包含字典名和方法items(),它返回一个键—值对列表。Python不关心键—值对的存储顺序,而只跟踪键和值之间的关联关系。

(1)遍历字典中的所有键

在不需要使用字典中的值时,方法keys()很有用。

遍历字典时,会默认遍历所有的键,因此,如果将上述代码中的for name in favorite_languages.keys():替换为for name in favorite_languages:,输出将不变。

方法keys()并非只能用于遍历;实际上,它返回一个列表,其中包含字典中的所有键。

(2)按顺序遍历字典中的所有键

要以特定的顺序返回元素,一种办法是在for循环中对返回的键进行排序。为此,可使用函数sorted()来获得按特定顺序排列的键列表的副本。

(3)遍历字典中的所有值

如果感兴趣的主要是字典包含的值,可使用方法values(),它返回一个值列表,而不包含任何键。

这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。集合类似于列表,但每个元素都必须是独一无二的。

8.嵌套

有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

(1)字典列表

(2)在字典中存储列表

(3)在字典中存储字典

二、用户输入和while循环

1.函数input()的工作原理

函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便你使用。函数input()接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做。

2.使用int()来获取数值输入

为解决这个问题,可使用函数int(),它让Python将输入视为数值。函数int()将数字的字符串表示转换为数值表示。

3.while循环

(1)使用while循环

(2)让用户选择何时退出

(3)使用标志

在要求很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志,充当了程序的交通信号灯。你可让程序在标志为True时继续运行,并在任何事件导致标志的值为False时让程序停止运行。这样,在while语句中就只需检查一个条件——标志的当前值是否为True,并将所有测试(是否发生了应将标志设置为False的事件)都放在其他地方,从而让程序变得更为整洁。

(4)使用break退出循环

要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break语句。

(5)在循环中使用continue

要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句,它不像break语句那样不再执行余下的代码并退出整个循环。

4.使用while循环来处理列表和字典

for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while循环。

(1)在列表之间移动元素

(2)删除包含特定值的所有列表元素

我们之前使用函数remove()来删除列表中的特定值,这之所以可行,是因为要删除的值在列表中只出现了一次。

(3)使用用户输入来填充字典

  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值