list reverse,列出多个-1

时间:2011-09-01 22:13:51

标签: python

预期结果:

>>> createLists(5)
([1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [ -5, -4, -3, -2, -1], [-1, -2, -3, -4, -5])

我的代码:

  # Write a function that returns 4 lists given a postive number.
    def createLists(num): 
        ls =    [item for item in range(num)]
        return set(ls, ls.reverse(), ls.reverse()*(-1), ls*(-1))

有人指导我怎么做吗?

3 个答案:

答案 0 :(得分:6)

def createLists(num): 
    ls = range(1, num+1)
    return (ls, ls[::-1], [-n for n in ls][::-1], [-n for n in ls])

print createLists(5)

http://ideone.com/B0ixx

答案 1 :(得分:0)

您遇到的两个问题是:
1. reverse()反转列表并且不返回任何内容,因此set(ls, ls.reverse())就像调用set(ls, None)一样 2. set需要一个列表或其他可迭代的,而不是几个标量参数。

答案 2 :(得分:0)

你差不多正确,除了将列表乘以负数不会使每个元素都为负数,但它将成为一个空列表。相反,你应该编写一个简单的函数来使每个元素为负数或乘以某个数字,例如。

def listmul(items, multiplier):
    return [item*multiplier for item in items]

print listmul(range(5), -1)

输出:

[0, -1, -2, -3, -4]