1. dict字典
a. 定义
b. 创建
c. 字典的方法
2. 集合
a. 特性
b. 创建
c. 方法
3. 判断语句(要求掌握多条件判断)
4. 三目表达式
5. 循环语句
1. dict字典
a. 定义
字典可能是Python最为重要的数据结构。它更为常见的名字是哈希映射或关联数组。它是键值对的大小可变集合,键和值都是Python对象。
b. 创建
创建字典的方法之一是使用尖括号,用冒号分隔键和值:
In [101]: empty_dict = {}
In [102]: d1 = {‘a’ : ‘some value’, ‘b’ : [1, 2, 3, 4]}
In [103]: d1
Out[103]: {‘a’: ‘some value’, ‘b’: [1, 2, 3, 4]}
用序列创建字典
mapping = {}
for key, value in zip(key_list, value_list):
……mapping[key] = value
c. 字典的方法
你可以像访问列表或元组中的元素一样,访问、插入或设定字典中的元素:
In [104]: d1[7] = ‘an integer’
In [105]: d1 Out[105]: {‘a’: ‘some value’, ‘b’: [1, 2, 3, 4], 7: ‘an integer’}
In [106]: d1[‘b’]
Out[106]: [1, 2, 3, 4]
你可以用检查列表和元组是否包含某个值的方法,检查字典中是否包含某个键:
In [107]: ‘b’ in d1
Out[107]: True
可以用del关键字或pop方法(返回值的同时删除键)删除值。
keys和values是字典的键和值的迭代器方法。虽然键值对没有顺序,这两个方法可以用相同的顺序输出键和值。
用update方法可以将一个字典与另一个融合:
In [119]: d1.update({‘b’ : ‘foo’, ‘c’ : 12})
In [120]: d1
Out[120]: {‘a’: ‘some value’, ‘b’: ‘foo’, 7: ‘an integer’, ‘c’: 12}
update方法是原地改变字典,因此任何传递给update的键的旧的值都会被舍弃。
2. 集合
a. 特性
集合是无序的不可重复的元素的集合。你可以把它当做字典,但是只有键没有值。
b. 创建
可以用两种方式创建集合:通过set函数或使用尖括号set语句:
In [133]: set([2, 2, 2, 1, 3, 3])
Out[133]: {1, 2, 3}In [134]: {2, 2, 2, 1, 3, 3}
Out[134]: {1, 2, 3}
c. 方法
集合支持合并、交集、差分和对称差等数学集合运算。
合并是取两个集合中不重复的元素。可以用union方法,或者|运算符。
In [137]: a.union(b)
Out[137]: {1, 2, 3, 4, 5, 6, 7, 8}In [138]: a | b
Out[138]: {1, 2, 3, 4, 5, 6, 7, 8}
交集的元素包含在两个集合中。可以用intersection或&运算符:
In [139]: a.intersection(b)
Out[139]: {3, 4, 5}In [140]: a & b
Out[140]: {3, 4, 5}
3. 判断语句(要求掌握多条件判断)
if 条件判断
格式如下:
if 判断条件:
执行语句…
elif 判断条件:
执行语句…
else 判断条件:
执行语句…
#其中elif这部分可选
while条件判断
格式如下:
while 判断条件:
执行语句…
注意:容易造成无限循环,判断条件为真,执行语句后,会返回接着判断。
4. 三目表达式
Python中的三元表达式可以将if-else语句放到一行里。语法如下:
value = true-expr if condition else false-expr
true-expr或false-expr可以是任何Python代码。它和下面的代码效果相同:
if condition:
……value = true-expr
else:
……value = false-expr
下面是一个更具体的例子:
In [126]: x = 5
In [127]: ‘Non-negative’ if x >= 0 else ‘Negative’
Out[127]:‘Non-negative’
和if-else一样,只有一个表达式会被执行。因此,三元表达式中的if和else可以包含大量的计算,但只有True的分支会被执行。
虽然使用三元表达式可以压缩代码,但会降低代码可读性。
5. 循环语句
5.1 for循环
for循环是在一个集合(列表或元组)中进行迭代,或者就是一个迭代器。for循环的标准语法是:
for value in collection:
# do something with value
你可以用continue使for循环提前,跳过剩下的部分。看下面这个例子,将一个列表中的整数相加,跳过None:
sequence = [1, 2, None, 4, None, 5] total = 0 for value in sequence:
if value is None:
continue
total += value
可以用break跳出for循环。下面的代码将各元素相加,直到遇到5:
sequence = [1, 2, 0, 4, 6, 5, 2, 1] total_until_5 = 0 for value in
sequence:
if value == 5:
break
total_until_5 += value
break只中断for循环的最内层,其余的for循环仍会运行。
如果集合或迭代器中的元素序列(元组或列表),可以用for循环将其方便地拆分成变量:
for a, b, c in iterator:
# do something
5.2 while循环
while循环指定了条件和代码,当条件为False或用break退出循环,代码才会退出:
x = 256
total = 0
while x > 0:
……if total > 500:
…………break
……total += x
……x = x // 2