我试图从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图形。
答案 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)
' ##### #####'