预期结果:
>>> 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))
有人指导我怎么做吗?
答案 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)
答案 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]