Python社区  »  Python

奇数python列表

Jason Walker • 8 月前 • 85 次点击  

我需要写一个函数来生成一个n个奇数的列表,从1开始。如果输入为12,则输出应为 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23] . 如果输入是 10 ,输出应为[1、3、5、7、9、11、13、15、17、19]

这就是我到目前为止得到的。我都不知道我是不是走对了方向

def odd(n):
    nums = list()
    for i in range(1, n + 1):
        nums.append(i)
    return nums
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46216
 
85 次点击  
分享到微博
文章 [ 9 ]  |  最新文章 8 月前
user11779486
Reply   •   1 楼
user11779486    10 月前

lambda numpy . 借助于 兰姆达 你可以一行写函数 numpy.arange 就像 range() 但它返回一个数组:

import numpy as np  # Importing numpy module
odd = lambda num: np.arange(1,num*2+1,2)   
odd(10)
user11779291
Reply   •   2 楼
user11779291    10 月前

你也可以使用这个:

def odd(n):
    nums = []
    for i in range(1, n*2+1):
        if i%2==0:
            pass
        else:
            nums.append(i)
    return nums
odd(10)

产量

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
Aron
Reply   •   3 楼
Aron    10 月前

文档: https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.arange.html

import numpy as np

def odd(n):
   return np.arrange(1,n*2,2)
L3n95
Reply   •   4 楼
L3n95    10 月前

或与 numpy

import numpy as np
def odd(n):
   return np.arange(1, 2*n, 2)


odd(10) -> array([ 1,  3,  5,  7,  9, 11, 13, 15, 17, 19])
odd(12) -> array([ 1,  3,  5,  7,  9, 11, 13, 15, 17, 19, 21, 23])
U10-Forward
Reply   •   5 楼
U10-Forward    10 月前

为什么不:

def odd(n):
    return list(range(1, n * 2, 2))
Willem Van Onsem
Reply   •   6 楼
Willem Van Onsem    10 月前

range(..) 可以取第三个参数,即 step 该值在每次迭代中递增的量。列表的最后一项 n 奇数元素,is 2×N-1 ,所以我们可以这样写:

def odd(n):
    return list(range(1, 2*n, 2))
user11779307
Reply   •   7 楼
user11779307    10 月前

代码与 list comprehenssion -

def odd(n):
    return [num for num in range(1, n*2+1,2)]
odd(10)

产量

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
bart
Reply   •   8 楼
bart    10 月前
def odd(n):
    return list(range(1, 2*n, 2))

print(odd(10))
print(odd(12))

输出:

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]                                                                                                                           
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23]    
thebjorn
Reply   •   9 楼
thebjorn    10 月前

几乎。。

def odd(n):
    nums = []
    for i in range(1, 2*n, 2):
        nums.append(i)
    return nums

我们知道每一个数字都是奇数,所以我们必须“数”到 2*n 包括所有这些。这个 range 函数采用第三个参数,指示在每个迭代中跳过多少个元素。