iter.md 1.3 KB
Newer Older
1 2
# Python 生成器推导式

F
feilong 已提交
3
Python 独步天下的推导式表达式,使用元表推导式过滤长度小于等于4的书籍
4 5 6 7 8

```python
def test():
	books = ('程序员修炼之道', '构建之法', '代码大全', 'TCP/IP协议详解')

9
	# TODO(you): 此处请为reading进行正确的赋值
10 11 12 13 14 15 16 17 18 19 20 21 22 23

	print("太长的书就不看了,只读短的:")
	for book in reading:
		print(" ->《{}》".format(book))

	print("可是发现书的名字短,内容也可能很长啊!")


if __name__ == '__main__':
	test()
```

请选出下列能**正确**实现这一功能的选项。

24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
## template

```python
def test():
	books = ('程序员修炼之道', '构建之法', '代码大全', 'TCP/IP协议详解')

	reading = (book for book in books if len(book) <= 4)

	print("太长的书就不看了,只读短的:")
	for book in reading:
		print(" ->《{}》".format(book))

	print("可是发现书的名字短,内容也可能很长啊!")


if __name__ == '__main__':
	test()
```



45 46 47
## 答案

```python
48
reading = (book for book in books if len(book) <= 4)
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
```



## 选项

### A

```python
reading = (books[i] for book in books: if len(book) < 4)
```

### B

```python
reading = (book for book in books if len(book) < 4)
```

### C

```python
reading = (book for book in books: if len(book) <= 4)
```