编写函数来复制数据

时间:2017-01-05 19:53:30

标签: python-2.7

我正在编写一个函数,该函数接收两个要复制的参数数据,以及应该复制数据的次数。 我是python的新手,任何人都可以帮忙

def replicate_iter(times, data):
    output = times * data
    if type(data) != str:
        raise ValueError('Invalid')
    if times <= 0:
        return []
    else:
        return output.split(' ')

print replicate_iter(4, '5') #expected output [5, 5, 5, 5]

['5555']

2 个答案:

答案 0 :(得分:0)

您正在返回output.split(' '),但您的输入'5'不包含空格。 因此'5555'.split(' ')会返回['5555']。您将需要更改返回条件或在元素之间添加空格。

添加空格:(这假设您的字符串本身不包含空格)

output = (times * (data + " ")).rstrip() # add a trailing space between elements and remove the last one

更改返回/函数:(这将支持带空格的字符串)

def replicate_iter(times, data):
    output = []
    if type(data) != str:
        raise ValueError('Invalid')
    while len(output) < times:
       output.append(data)
    return output

答案 1 :(得分:0)

此代码已注释,将为您提供所需的输出,但使用大小为times的for循环。

def replicate_iter(times, data):
    output = [] #you can initialize your list here
    if type(data) != str:
        raise ValueError('Invalid')
    #if times <= 0: # Since input was initialized earlier
    #    return [] # These two lines become unnecessary
    else:
        for i in range(times): #use a for loop to append to your list
            output.append(int(data)) #coerce data from string to int
        return output #return the list and control to environment

print replicate_iter(4, '5')

输出是:

[5, 5, 5, 5]