关于python的一个题目

2012-09-21 15:57:19 +08:00
 Alpha
import random
r = range(1,254)
d = random.sample[d,4]

我想把list拼装成ip地址,如 123.123.123.123
本来以为用:
'.'.join(d)可以的,但发现类型不对,还有其它可以用的函数吗?

或者说,把[1,2,3,4]转换成['1','2','3','4']的方法是什么?
3116 次点击
所在节点    问与答
6 条回复
raquelken
2012-09-21 15:59:04 +08:00
".".join([str(id) for id in d])
wong2
2012-09-21 16:02:42 +08:00
map(str, d)
Alpha
2012-09-21 16:11:10 +08:00
@raquelken 非常感谢,虽然我看懂了,但为什么可以这样写?str(id) for id in d
Alpha
2012-09-21 16:13:07 +08:00
@wong2 map函数正是我想要的,谢谢。
raquelken
2012-09-21 16:14:32 +08:00
列表推导,可以看看这里 http://www.python.org/dev/peps/pep-0202/
Alpha
2012-09-21 17:14:48 +08:00
综合两位的回答,我发现这样才正确,谢谢
def f():
return str(random.randrange(1,255,1))

'.'.join([f() fro i in range(4)])

python的确可以省好多功夫

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

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

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

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

© 2021 V2EX