如何在一行代码中打印每个列表项?

2024-04-25 17:49:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一些类似的事情:

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>

我知道有办法,我只是略过了一些小事。。但我不知道是什么。感谢您的帮助。你知道吗


Tags: toinfromenvformatforobjectgenerator
3条回答

不确定列表的格式,但你可以这样做

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'
(for object in sequence)

创建生成器。你想要这个:

[for object in sequence]

编辑:

或者这个:

print "Stuff stuff stuff {}".format(" ".join(list))

通常,如果列表项是字符串,则可以使用string join

print ' '.join(env.hosts)

如果列表项不是字符串,则可以使用list comprehension,在其中调用str()(假设您有一个可以由str()转换的数据类型)使其成为字符串:

print ' '.join([str(h) for h in env.hosts])

相关问题 更多 >