Python 反向列出,按-1列出多个
预期结果:Python 反向列出,按-1列出多个,python,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 ra
>>> 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))
有人教我怎么做吗
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.reverse()将列表反转到位,并且不返回任何内容,因此
set(ls,ls.reverse())
就像调用set(ls,None)
2.set需要一个列表或其他iterable,而不是几个标量参数。您遇到的两个问题是:
1.reverse()将列表反转到位,并且不返回任何内容,因此
set(ls,ls.reverse())
就像调用set(ls,None)
2.set需要一个列表或其他iterable,而不是几个标量参数。您几乎做对了,只是将列表乘以负数不会使每个元素都为负数,但它将成为一个空列表。相反,您应该编写一个简单的函数,使每个元素为负数或乘以某个数字,例如
def listmul(items, multiplier):
return [item*multiplier for item in items]
print listmul(range(5), -1)
输出:
[0, -1, -2, -3, -4]
你几乎做对了,除了列表乘以负数不会使每个元素都是负数,但它会变成一个空列表。相反,您应该编写一个简单的函数,使每个元素为负数或乘以某个数字,例如
def listmul(items, multiplier):
return [item*multiplier for item in items]
print listmul(range(5), -1)
输出:
[0, -1, -2, -3, -4]
你提供代码是好的,但是你也应该提供你得到的任何不正确的结果或错误。你应该乘以列表中的每个元素,而不是整个列表。你提供代码是好的,但是您也应该提供您得到的任何不正确的结果或错误。您应该将列表中的每个元素相乘,而不是整个列表,或者仅将
-n
而不是-1*n
。仅供参考,最后两个列表被交换。为什么在第一行使用列表理解?或者只是-n
而不是-1*n
。仅供参考,最后两个列表被交换。为什么在第一行使用列表理解?