玩命加载中...
### 12. 综合练习
综合练习是我们教程的最后一节。这一节中,初学者需要自己设计函数来完成对list的特殊操作。
#### 1. 设计函数`squares_even(n)`。
输入值`n`为正整数。`squares_even(n)`返回一个list,其元素为所有1到n之间的偶数的平方。例如:
`squares_even(7)`的返回值为`[4, 16, 36]`。`squares_even(10)`的返回值为`[4, 16, 36, 64, 100]`。
#### 2. 设计函数`remove_duplicates(my_list)`。
若`my_list`中有元素重复出现,我们只保留第一个。例如:
`remove_duplicates([1, 3, 5, 3, 2, 2])`的返回值为`[1, 3, 5, 2]`
#### 3. 设计函数`find_max(my_list)`。
`my_list`是一个元素为数值的list。该函数返回`my_list`中最大值的index,若最大值不唯一,则返回第一个最大值的index。例如:
`find_max([1, 3, 5, 3, 2, 2])`的返回值为`2`。`find_max([1, 7, 5, 7])`的返回值为`1`。
#### 4. 设计函数`avg(my_list)`。
`my_list`是一个元素为数值的list。该`avg`函数返回`my_list`中所有元素的平均值。例如:
`avg([2, 2, 2])`的返回值为`2`。`avg([1, 2, 10, 3, -5])`的返回值为`2.2`。
#### 5. 设计函数`decrease(my_list)`。
`my_list`是一个元素为数值的list。该`decrease`函数按照降序、从大到小返回`my_list`中所有元素。例如:
`decrease([1, 2, 5, 4])`的返回值为`[5, 4, 2, 1]`。`decrease([1, -1, -1, 1])`的返回值为`[1, 1, -1, -1]`。
```python
#1.参考答案
def squares_even(n):
result, even_num = [], range(2, n + 1, 2)
for i in even_num:
result.append(i ** 2)
return result
print squares_even(10)
#2.参考答案
def remove_duplicates(my_list):
result = []
for i in my_list:
if i not in result:
result += [i]
return result
print remove_duplicates([1, 3, 5, 3, 2, 2])
#3.参考答案
def find_max(my_list):
x = max(my_list)
return my_list.index(x)
print find_max([1, 2, 7, 8, 1, 2, 8])
#4.参考答案
def avg(my_list):
return sum(my_list) / len(my_list)
print avg([3, 4])
#返回结果和你想的一样吗?想想上面的程序哪里错了?
#提示
def avg(my_list):
return float(sum(my_list)) / len(my_list)
#5.参考答案
def decrease(my_list):
result = my_list[:]
result.sort()
return result[::-1]
print decrease([3, 4, -1, 1])
```