python,能用一行语句,生成 10 个随机的奇数嘛?

2016-06-18 19:15:31 +08:00
 csdreamdong
7648 次点击
所在节点    Python
22 条回复
ioven
2016-06-18 19:25:00 +08:00
mengzhuo
2016-06-18 19:25:08 +08:00
都没有范围……我设为小于 100 , 大于 0
>>> map(lambda x:x if x%2 == 1 else x - 1, [random.randint(0,100) for i in range(10)])
>>> [59, 85, 37, 21, 75, 7, 41, 13, 99, 89]
pimin
2016-06-18 19:33:05 +08:00
def random_str(size=6, chars=string.ascii_uppercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
pimin
2016-06-18 19:33:56 +08:00
没看清题目..我的锅
lightening
2016-06-18 19:36:05 +08:00
[random.randint(0, 50) * 2 + 1 for x in range(10)]
thekoc
2016-06-18 19:38:14 +08:00
@mengzhuo 你这个有可能生成 - 1 了……
skydiver
2016-06-18 19:41:46 +08:00
@mengzhuo 你这个不随机了

应该直接生成 n 然后输出 2n+1
allenling
2016-06-18 19:50:38 +08:00
感觉没什么要求呀
直接 random.choice 或者 random.randrange 不就好了
practicer
2016-06-18 20:25:31 +08:00
import random import 语句也算吗?

random.sample([i for i in xrange(10000) if i % 2 == 1], 10)

random.sample(iter, k) 从一组 iter 对象里面随机选 k 个元素出来,
因此只要先先定义一个奇数列表,放进去就行了
csdreamdong
2016-06-18 20:27:33 +08:00
@practicer 啊哈哈。我喜欢这个方法,, 2n+1 虽然也能实现,,但有点 tricky
congeec
2016-06-18 21:55:23 +08:00
@practicer
__import__("random").sample([i for i in range(10000) if i % 2 == 1], 10)
aubee
2016-06-18 22:17:35 +08:00
[random.randint(0, 100) for i in range(10)]
这个有什么问题嘛?
zhuangzhuang1988
2016-06-18 22:59:13 +08:00
用好 eval/exec 啥都是一行解决
exec "import random\nprint [random.randint(0, 50) * 2 + 1 for x in range(10)]"
practicer
2016-06-18 23:05:31 +08:00
@congeec 原来可以这样写
zhangbohun
2016-06-18 23:35:03 +08:00
偶数加一
happyz90
2016-06-19 00:06:17 +08:00
happyz90
2016-06-19 00:06:56 +08:00
@happyz90
想写 8+1 。。。为啥写了 5+1😂
ryd994
2016-06-19 00:42:03 +08:00
为什么 2n+1 不好?
debiann
2016-06-19 00:47:22 +08:00
@skydiver 他的做法是可以的,因为本身用的是均匀分布,唯一的问题是-1 应该改成+1
debiann
2016-06-19 00:51:22 +08:00
@debiann 还有取值范围应该是个偶数,比如[1, 100]这样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/286709

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX