我想做类似的事情:
print ' -- Checking connectivity from {} to {}'.format((h for h in env.hosts), (h for h in dbHostList))
但是,这只会产生:-- Checking connectivity from <generator object <genexpr> at 0x2c36190> to <generator object <genexpr> at 0x2c367d0>
我知道有办法做到这一点,我只是跳过一些小东西......但我不知道是什么。任何帮助表示赞赏。
答案 0 :(得分:3)
(for object in sequence)
创建生成器。你想要这个:
[for object in sequence]
编辑:
或者这个:
print "Stuff stuff stuff {}".format(" ".join(list))
答案 1 :(得分:2)
通常,如果您的列表项是字符串,则可以使用string join:
print ' '.join(env.hosts)
如果您的列表项不是字符串,则可以使用list comprehension来调用str()(假设您有一个可以通过str()转换的数据类型)来使它们成为字符串:
print ' '.join([str(h) for h in env.hosts])
答案 2 :(得分:1)
不确定您希望如何格式化列表,但您可以
print ' -- Checking connectivity from {} to {}'.format(env.hosts, dbHostList)
这将创建一个类似
的字符串' -- Checking connectivity from [1, 2, 3] to [4, 5, 6]'
否则,如果您想要一些特定的格式/分隔符,可以使用join
,例如
print ' -- Checking connectivity from {} to {}'.format(':'.join(map(str, env.hosts)), ':'.join(map(str, dbHostList)))
哪个会打印
' -- Checking connectivity from 1:2:3 to 4:5:6'
答案 3 :(得分:0)