Python 运行长度编码项目isn';t输出

Python 运行长度编码项目isn';t输出,python,string,output,Python,String,Output,我做错了什么?你的台词: print(expand("d3o5z2y1")) #should output: dddooooozzy 不会更改位置的值。计算位置+2,然后扔掉该值,应将结果分配给位置,因此: position + 2 您从不更新位置 position+2只执行计算,而不将计算值存储在任何位置。您可能想要position=position+2 此外,您还可以使用位置逐个关闭 position + 2 def expand(nums): finalword = ''

我做错了什么?

你的台词:

print(expand("d3o5z2y1")) #should output: dddooooozzy
不会更改
位置的值。计算
位置+2
,然后扔掉该值,应将结果分配给位置,因此:

position + 2

您从不更新
位置

position+2
只执行计算,而不将计算值存储在任何位置。您可能想要
position=position+2

此外,您还可以使用
位置逐个关闭
position + 2
def expand(nums):
    finalword = ''
    position = 0
    wordlength = len(nums)
    keypoint = ''
    while position < wordlength:
        keypoint = nums[position] * int(nums[position + 1])
        finalword = finalword + keypoint
        keypoint = 0
        position = position + 2  # or more compact: position += 2
    return finalword
def expand(nums):
    finalword = ''
    wordlength = len(nums)
    for position in range(0, len(nums), 2):
        keypoint = nums[position] * int(nums[position + 1])
        finalword += keypoint
    return finalword
def expand(nums):
    inums = iter(nums)
    return ''.join(c * int(n) for c, n in zip(inums, inums))
print(expand("d3o5z2y1"))
'dddooooozzy'
>>> s = "d3o5z2y1"
>>> list(zip(*[iter(s)]*2))
>>> [('d', '3'), ('o', '5'), ('z', '2'), ('y', '1')]
>>>
>>> ''.join(char*int(count) for char, count in zip(*[iter(s)]*2))
>>> 'dddooooozzy'