Python学习X --- 推导式
来源:互联网 发布:华为手机修改mac地址 编辑:程序博客网 时间:2024/06/06 01:41
python频繁地使用迭代器,一般我们用for进行迭代。
使用zip()迭代
>>> names = ['n1','n2']>>> ages = [18,17,19]>>> for name, age in zip(names, ages):... print('name:', name, ' age:',age)... name: n1 age: 18name: n2 age: 17
显然zip会咋爱最短的序列“用完”时候停止。注意zip返回的是可迭代变量。所以你可以list()函数把它变成list!
list(zip(names,ages))
当然也可以用dict()把可迭代对象变成字典。
推导式
[expression for item in iterable]
[expression for item in iterable if condition]
a_list = [number*100 for number in range(1,6) if number % 2 == 1]#也可以使用多重循环rows = range(1,2)cols = range(1,3)ceils = [(row, col) for row in rows for col in cols] #构建(row, col)元组
字典,集合类似。
注意:推导式只适用于列表,字典和集合。
元组没有推导式
>>> t = ('cc',12)>>> t('cc', 12)>>> l = (v for v in t)>>> l #这里变成一个生成器对象了!并不是元组!<generator object <genexpr> at 0x7f21059a3830>
所以你可以用for对生成器对象l进行迭代。
我想你可能更希望是这样!
既然list()可以把可迭代对象转换成列表,所以
l = list(v for v in t) # 话说你为啥不直接 l = list(t)呢?
因此,要对元组进行推导式迭代,先转换成list吧。
附加列表和元组的一点补充
列表
- list()可以将其他类型数据转换成列表,比如字符串,元组等等。
- 索引,切片,append, extend, insert, del, remove, pop, index, in, count, len, sort略。
- join()主要是将列表转换为字符串。
比如
name = ['name1', 'name2']','.join(name)
用=进行赋值,不过要用copy()进行复制
对于列表,元组,字典,集合,都是如此。
如果直接用=,是引用。。
a = [1,2]b = a.copy()
元组
用()创建,有list大部分的函数,不过元素不可变。
元组与列表相比:
- 元组所占空间小
- 可以作为字典的键
- 命名元组可以作为对象的替代
- 函数的参数以元组的形式传递
字典和集合没什么好说的。。
阅读全文
0 0
- Python学习X --- 推导式
- Python学习—x*2 for x in y 链表推导式
- Python推导式尝试学习
- Python的列表推导式学习
- python学习记录--列表推导式
- python学习笔记--推导式(Comprehension)
- python学习--数组推导
- 【Python学习笔记】-Python中三目表达式与推导式
- python 之 推导式
- python 列表推导式
- python 推导式
- python列表推导式
- python之推导式
- Python 推导式
- python 列表推导式
- Python列表推导式
- python的推导式
- python推导式
- Ant 使用教程
- Python,Pycharm,Anaconda等的关系与安装过程~为初学者跳过各种坑
- C语言之运算与表达式(笔记六)
- Proceess,Pool中的Queue通讯以及Thread中的Queue
- JavaScript学习之图片淡入淡出
- Python学习X --- 推导式
- [HDU4669]Mutiples on a circle
- ajax 长轮循
- 激活函数的作用
- 用RxJava和RxBinding发射用户点击
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- java算法之简单选择排序
- 数据结构实验之栈一:进制转换
- [随心译]2017.8.5-中国聊天机器人在拒绝说“我爱Communist Party”后被下线