有人可以解释此循环如何打印此元组吗?

时间:2019-05-27 01:43:03

标签: python

我试图从python挑战中了解问题5的解决方案,但我不了解for循环如何从元组中打印数据。解决方案来自here

数据包含一个元组列表,例如。 data = [[(' ', 95)], [(' ', 14), ('#', 5), (' ', 70), ('#', 5), (' ', 1) ...]]

for line in data:
    print("".join([k * v for k, v in line]))

应该打印的是由'#'组成的ASCII图形。

2 个答案:

答案 0 :(得分:0)

这是偷偷摸摸的。这是元组列表的列表。内部列表是终端上的一行,每个元组是一个字符,后跟该行的次数 字符应该被打印。

似乎遍历列表,对于每个元组, 打印出元组[0]元组[1]次。

它先打印''95次,然后''14次,然后'#'5次,等等,插入换行符 在每个内部列表之间。

答案 1 :(得分:0)

考虑:

>>> line = [(' ', 3), ('#', 5), (' ', 3), ('#', 5)]
>>> strs = [k * v for k, v in line]

然后:

>>> strs
['   ', '#####', '   ', '#####']

此外:

>>> ''.join(strs)
'   #####   #####'