有人能解释一下这个循环是怎么打印这个元组的吗?

2024-03-28 19:07:12 发布

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

我试图理解pythonchallenge中问题5的解决方案,但我不明白for循环是如何从元组打印数据的。溶液来自here

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

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

打印出来的是由“#”组成的ASCII图形。你知道吗


Tags: 数据in图形列表fordatahereline
2条回答

考虑:

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

然后:

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

此外:

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

这个鬼鬼祟祟的。这是一个元组列表。内部列表是终端上的一行,每个元组是一个字符,后面跟一个数字 应打印字符。你知道吗

看起来它在遍历列表,对于每个元组, 打印元组[0]元组[1]-次。你知道吗

它先打印95次,然后打印14次,再打印5次,以此类推,插入换行符 在每个内部列表之间。你知道吗

相关问题 更多 >