编写程序,定义一个函数 jishu_list,找出传入的列表的奇数位对应的元素,并返回一个新的列表。
时间: 2024-05-10 10:16:03 浏览: 80
可以使用 Python 编写一个 jishu_list 函数来实现此功能,具体代码如下:
```python
def jishu_list(lst):
return [lst[i] for i in range(len(lst)) if i % 2 == 0]
```
这个函数接收一个列表作为参数,然后通过列表推导式生成一个新的列表,其中仅包含原列表中奇数位对应的元素。
使用示例如下:
```python
>>> lst = [1, 2, 3, 4, 5, 6]
>>> jishu_list(lst)
[1, 3, 5]
```
在以上示例中,传入列表 `[1, 2, 3, 4, 5, 6]`,函数返回新的列表 `[1, 3, 5]`,即原列表中奇数位对应的元素。
相关问题
运行下面程序段,输出: list1 = [1,2,3,4,5,6,7] def jishu_list(a,li = []): for i in range(0,len(a)): if i%2 == 0: li.append(a[i]) return li print(jishu_list(list1))
输出应该是:[1, 3, 5, 7]。
这个程序定义了一个名为 `jishu_list` 的函数,函数接受一个列表 `a` 和一个可选参数 `li`,默认值是一个空列表 `[]`。函数的作用是从列表 `a` 中提取所有下标为奇数的元素,添加到列表 `li` 中,并返回 `li` 列表。
在 `print` 语句中调用函数 `jishu_list(list1)`,参数为列表 `[1,2,3,4,5,6,7]`。函数执行过程中,遍历了列表 `a` 的所有元素,将下标为奇数的元素添加到 `li` 列表中,最后返回了 `li` 列表。
由于 `li` 是一个可选参数,如果在调用函数 `jishu_list` 时不传入 `li` 参数,那么 `li` 就会使用默认值 `[]`。第一次调用函数时,`li` 确实是一个空列表。但是,第二次调用函数时,由于默认参数的特性,`li` 并没有被重新赋值为空列表,而是沿用了上一次函数调用的结果,导致结果出现错误。因此,在使用可选参数时,应该尽量避免使用可变对象作为默认值。
3、 def printNum(): for i in range(0,10): print (i) return printNum() 程序运行结果: 4、 def fun(*p): avg = sum(p)/len(pa) g = [i for i in p if i>avg] return (avg,)+tuple(g) print(fun(1,2,3,4)) 程序运行结果: 5、 x=2#全局变量 def fun1(): print (x, end=" ") def fun2(): global x x=x+1 print (x, end=" ") fun1() fun2() print (x, end=" ") 程序运行结果: 6、 l1 = [1,2,3,4,5,6,7] def jishu_list(l,li = []): n = 1 for i in l: if n%2 == 1: li.append(i) n += 1 return li print(jishu_list(l1)) 程序运行结果:
1. 对于第一个问题,程序运行结果是依次输出0到9这10个数字。
2. 对于第二个问题,程序运行结果是输出一个元组,元组的第一个元素为给定参数的平均值,后面跟着所有大于平均值的参数。
3. 对于第三个问题,程序运行结果是输出2 3 3,因为全局变量x的初始值为2,fun1()输出x的值为2,fun2()将全局变量x加1后输出值为3,最后再次输出全局变量x的值为3。
4. 对于第四个问题,程序运行结果是输出一个列表,列表中包含原始列表中下标为奇数的元素,即[1,3,5,7]。注意,由于函数中使用了默认参数,所以在多次调用该函数时,列表li会被保留并继续修改。
阅读全文