Python 3.6 学习--基础7:循环技术,更多关于条件,比较序列和其他类型
2018-07-31 22:10
686 查看
来源:https://docs.python.org/3.6/tutorial/datastructures.html#the-del-statement
1.循环技术
循环遍历字典时,可以使用该
items()方法同时检索密钥和相应的值。
[code]>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} >>> for k, v in knights.items(): ... print(k, v) ... gallahad the pure robin the brave
循环遍历序列时,可以使用该enumerate()
函数同时检索位置索引和相应的值。
[code]>>> for i, v in enumerate(['tic', 'tac', 'toe']): ... print(i, v) ... 0 tic 1 tac 2 toe
要同时循环两个或更多个序列,条目可以与该zip()
功能配对。
[code]>>> questions = ['name', 'quest', 'favorite color'] >>> answers = ['lancelot', 'the holy grail', 'blue'] >>> for q, a in zip(questions, answers): ... print('What is your {0}? It is {1}.'.format(q, a)) ... What is your name? It is lancelot. What is your quest? It is the holy grail. What is your favorite color? It is blue.
要反向循环序列,首先在正向指定序列,然后调用该reversed()
函数。
[code]>>> for i in reversed(range(1, 10, 2)): ... print(i) ... 9 7 5 3 1
要按排序顺序循环序列,请使用sorted()
返回新排序列表的函数,同时保持源不变。
[code]>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] >>> for f in sorted(set(basket)): ... print(f) ... apple banana orange pear
当你循环它时,有时很有可能改变一个列表; 但是,创建新列表通常更简单,更安全。
[code]>>> import math >>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8] >>> filtered_data = [] >>> for value in raw_data: ... if not math.isnan(value): ... filtered_data.append(value) ... >>> filtered_data [56.2, 51.7, 55.3, 52.5, 47.8]
2.更多关于条件
while和
if语句中使用的条件可以包含任何运算符,而不仅仅是比较。
比较运算符
in并检查序列中是否出现(不发生)值。运算符并比较两个对象是否真的是同一个对象; 这只对像列表这样的可变对象很重要。所有比较运算符具有相同的优先级,低于所有数值运算符的优先级。
not in
is
is not
比较可以链接。例如,测试是否小于,而且等于。
a < b == c
a
b
b
c
比较可以使用布尔运算符进行组合
and和
or,和一个比较的结果(或任何其它的布尔表达式的)可以与否定
not。这些优先级低于比较运算符; 它们之间,
not具有最高优先级和
or最低优先级,因此相当于。与往常一样,括号可用于表达所需的组成。
A and not B or C
(A and (not B)) or C
布尔运算符
and和
or所谓的短路 运算符:它们的参数从左到右进行计算,一旦确定结果,评估就会停止。例如,如果
A且
C为true但
B为false,则不评估表达式 。当用作一般值而不是布尔值时,短路运算符的返回值是最后一个求值的参数。
A and B and C
C
可以将比较结果或其他布尔表达式分配给变量。例如,
[code]>>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance' >>> non_null = string1 or string2 or string3 >>> non_null 'Trondheim'
请注意,在Python中,与C不同,赋值不能出现在表达式中。C程序员可能会抱怨这一点,但它避免了C程序中遇到的常见问题:
=在
==预期时输入表达式。
3.比较序列和其他类型
可以将序列对象与具有相同序列类型的其他对象进行比较。比较使用词典排序:首先比较前两个项目,如果它们不同,则确定比较的结果; 如果它们相等,则比较接下来的两个项目,依此类推,直到任一序列用完为止。如果要比较的两个项本身是相同类型的序列,则递归地执行词典比较。如果两个序列的所有项目相等,则认为序列相等。如果一个序列是另一个序列的初始子序列,则较短的序列是较小的(较小的)序列。字符串的字典顺序使用Unicode代码点编号来排序单个字符。相同类型序列之间比较的一些示例:
[code](1, 2, 3) < (1, 2, 4) [1, 2, 3] < [1, 2, 4] 'ABC' < 'C' < 'Pascal' < 'Python' (1, 2, 3, 4) < (1, 2, 4) (1, 2) < (1, 2, -1) (1, 2, 3) == (1.0, 2.0, 3.0) (1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)
请注意,如果对象具有适当的比较方法,则将不同类型的对象与对象进行比较<
或是>
合法的。例如,混合数字类型根据它们的数值进行比较,因此0等于0.0等。否则,解释器将引发TypeError
异常,而不是提供任意排序。
阅读更多
相关文章推荐
- Python【基础:数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set】注意事项(与java,c比较)
- Python基础教程学习笔记----第五章 条件、循环和其他语句
- Python基础教程 第5章: 条件、循环和其他语句 学习笔记
- <<Python基础教程>>学习笔记 | 第05章 | 条件、循环和其他语句
- python基础教程学习笔记---(5)条件、循环和其他语句
- Python基础学习三 条件判断和循环
- Python学习笔记:条件、循环和其他语句
- Python基础学习--第四篇(条件判断和循环)
- python 条件,循环和其他语句的学习笔记
- [Python学习] 专题二.条件语句和循环语句的基础知识
- 条件、循环和其他语句——Python学习系列之三
- Python学习笔记之条件、循环和其他语句
- python基础学习第四课,条件判断语句,数据类型转换
- [Python学习] 专题二.条件语句和循环语句的基础知识
- [Python学习] 专题二.条件语句和循环语句的基础知识
- Python基础教程笔记——第5章:条件,循环和其他语句
- Python教程学习简记1--Python数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set
- Python基础语法学习--条件控制与循环语句
- 【Python基础教程笔记(二)】字典,条件,循环和其他语句
- python学习(基础补充)--字典、条件语句、循环