V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Alpha
V2EX  ›  问与答

关于python的一个题目

  •  
  •   Alpha · 2012-09-21 15:57:19 +08:00 · 3199 次点击
    这是一个创建于 4448 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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']的方法是什么?
    6 条回复    1970-01-01 08:00:00 +08:00
    raquelken
        1
    raquelken  
       2012-09-21 15:59:04 +08:00   ❤️ 1
    ".".join([str(id) for id in d])
    wong2
        2
    wong2  
       2012-09-21 16:02:42 +08:00   ❤️ 1
    map(str, d)
    Alpha
        3
    Alpha  
    OP
       2012-09-21 16:11:10 +08:00
    @raquelken 非常感谢,虽然我看懂了,但为什么可以这样写?str(id) for id in d
    Alpha
        4
    Alpha  
    OP
       2012-09-21 16:13:07 +08:00
    @wong2 map函数正是我想要的,谢谢。
    raquelken
        5
    raquelken  
       2012-09-21 16:14:32 +08:00
    列表推导,可以看看这里 http://www.python.org/dev/peps/pep-0202/
    Alpha
        6
    Alpha  
    OP
       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的确可以省好多功夫
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4864 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:03 · PVG 18:03 · LAX 02:03 · JFK 05:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.