Python 如何在一行代码中打印每个列表项?
我想做一些类似的事情:Python 如何在一行代码中打印每个列表项?,python,Python,我想做一些类似的事情: print'--检查从{}到{}的连接。格式((在env.hosts中为h),(在dbHostList中为h)) 但是,这只会产生:——检查到的连接 我知道有一种方法可以做到这一点,我只是略过了一些小的东西。。但我不知道是什么。非常感谢您的帮助。不确定列表的格式,但您可以这样做 print ' -- Checking connectivity from {} to {}'.format(env.hosts, dbHostList) 这将创建一个类似 ' -- Che
print'--检查从{}到{}的连接。格式((在env.hosts中为h),(在dbHostList中为h))
但是,这只会产生:——检查到的连接
我知道有一种方法可以做到这一点,我只是略过了一些小的东西。。但我不知道是什么。非常感谢您的帮助。不确定列表的格式,但您可以这样做
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'
不确定列表的格式,但您可以这样做
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]
编辑:
或者这个:
print "Stuff stuff stuff {}".format(" ".join(list))
创建一个生成器。你想要这个:
[for object in sequence]
编辑:
或者这个:
print "Stuff stuff stuff {}".format(" ".join(list))
通常,如果列表项是字符串,则可以使用:
如果列表项不是字符串,则可以使用调用(假设您有一个可由str()转换的数据类型)的字符串:
print ' '.join([str(h) for h in env.hosts])
通常,如果列表项是字符串,则可以使用:
如果列表项不是字符串,则可以使用调用(假设您有一个可由str()转换的数据类型)的字符串:
print ' '.join([str(h) for h in env.hosts])
如果要为每一次检查指定一行,可以为每对主机添加换行符和格式化字符串。可以将这两个列表组合起来,以便成对地迭代:
print '\n'.join(' -- Checking connectivity from {host} to {db_host}'
.format(host=host, db_host=db_host)
for host, db_host in zip(env.hosts, dbHostList))
如果要为每一次检查指定一行,可以为每对主机添加换行符和格式化字符串。可以将这两个列表组合起来,以便成对地迭代:
print '\n'.join(' -- Checking connectivity from {host} to {db_host}'
.format(host=host, db_host=db_host)
for host, db_host in zip(env.hosts, dbHostList))
预期的输出是什么?展开@user5061的问题:您想要什么?您是否正在测试每个可能的连接并报告结果?你在测试某些对吗?还有什么?预期的输出是什么?来扩展@user5061的问题:您想要什么?您是否正在测试每个可能的连接并报告结果?你在测试某些对吗?还有别的吗?在env.hosts中理解h的列表将完全是浪费时间。它将创建一个列表,它是已经是list.True的env.hosts
的精确副本。我以为他只是想要从()到[]的正确语法。不过,编辑会起作用。理解[h for h in env.hosts]
的列表完全是浪费时间。它将创建一个列表,它是已经是list.True的env.hosts
的精确副本。我以为他只是想要从()到[]的正确语法。不过,编辑可以工作。你不需要理解字符串,生成器就可以了。虽然生成器可以工作,但OP似乎想打印整个“东西”;因此,使用生成器什么也得不到。你不需要理解字符串,生成器就可以了。虽然生成器可以工作,但OP似乎想要打印整个“东西”;因此,使用生成器不会获得任何结果。