python 学习笔记 二
1.tuple str bytes 都是不可变序列
2.列表推导 常用 元组也是类似格式
例如利用列表推导构造一个笛卡儿积codes = [(card**2, color ) for card in cards if (card %2) == 0 for color in colors]
3.filter()过滤函数 接收两个参数 第一个为函数 第二个为可迭代对象
函数接收迭代函数的每一个元素,返回布尔值来判定是否过滤该元素
例
def is_odd(x):
r = int(x)
return r%2
t = filter(is_sqr, range(1, 101))
print(list(t))
4.元组由于其不可变可以用于数据的记录,且元组拆包也很有用
(1)平行赋值 a = (1,2)
b, c = a
例子 b, a = a, b 用于交换变量
(2)*运算符unpack
a = (1,2)
add(*a)
(3)*的其他用法 获取不定数量参数
a, b, *rest = range(5)
a, b, rest
(0, 1, [2, 3, 4])
(4) 嵌套unpack
a = [(1, 2, (‘red’, ‘green’)), (3, 4, ( ‘blue’, ‘yellow’))]
for num1, num2, (color1, color2) in a:
…
5.collections.namedtuple 创造具名元组
City = namedtuple(‘City’, [‘population’, ‘name’])
BeiJing = City(‘1.4billion’, ‘BeiJing’)
6.切片[a, b] --> [a, c) [a: b: c] a为起点 b为终点 c为步长
且切片可以赋值 右侧也必须是可迭代对象
7.对列表和字符串可以使用 + *
l = [1, 2, 3]
l + l ——> [1, 2, 3, 1, 2, 3]