我需要有人帮我解释下面的代码。 在查看解决方案之后,我花了一些时间才弄清楚这个数字实际上代表了字母计数的数量。但是,我在python中非常弱。
那么,有人可以用简单的英语向我解释字母数如何与数字列表相关联吗?
line = 'abcdef'
count = [3,4,7,1,2,5]
index = 0
while index < len(line):
print(count[index], end=' ')
for k in range(0,count[index]):
print(line[index],end='')
print()
index = index + 1
输出
3 aaa
4 bbbb
7 ccccccc
1 d
2 ee
5 fffff
答案 0 :(得分:3)
循环在0
和len(line) - 1
上使用该索引生成line
和count
之间的索引。因此,count
预计长度相同。
通过以下方式:
index
小于len(line)
,请保持循环播放。count[index]
,后面有空格,没有换行符。0
循环到count[index] - 1
。这将循环count[index]
次。在此for
循环中,打印line[index]
时没有换行符,导致该字符被打印count[index]
次。index
。第一次迭代index
为0
,小于len(line)
。 line[0]
为a
,count[0]
为3,因此在打印3
后,a
会被打印3次。
第二次迭代index
为1
,小于len(line)
。 line[1]
为b
,count[1]
为4,因此在打印4
后,b
会被打印4次。
等。直到index
为6
,此时while
循环结束。
代码可以简化为:
for char, c in zip(line, count):
print(c, c * char)
答案 1 :(得分:1)
让我们一次完成一次迭代:
index
为0,count[0]
为3
,line[0]
为'a'
。因此,我们打印3
,然后打印'a'
3次index
为1,count[1]
为4
,line[1]
为'b'
。因此,我们打印4
,然后打印'b'
4次希望这足以说明发生了什么。