Python初学者(列表)
我需要编写一个名为make_ends的函数,它接收一个参数-一个列表。它返回一个新列表,其中包含输入列表的第一项和最后一项 这是我的代码,但它并没有把它分成一个列表。我有点不知道该怎么做。我需要使用.join功能吗?如果是,我该怎么做?我想我很接近了Python初学者(列表),python,python-2.7,Python,Python 2.7,我需要编写一个名为make_ends的函数,它接收一个参数-一个列表。它返回一个新列表,其中包含输入列表的第一项和最后一项 这是我的代码,但它并没有把它分成一个列表。我有点不知道该怎么做。我需要使用.join功能吗?如果是,我该怎么做?我想我很接近了 def make_ends(x): return x[0], x[-1] 这是我以前的构建,但除了返回原始字符串外,它什么也没做: def go_right(str): if str >= 2: a
def make_ends(x):
return x[0], x[-1]
这是我以前的构建,但除了返回原始字符串外,它什么也没做:
def go_right(str):
if str >= 2:
a = str[-2:0] + str
return a
怎么了
谢谢大家的帮助。你们真的很接近;唯一的问题是返回的是元组而不是列表。无论a和b是什么,a,b都是这两个东西的元组,就像[a,b]是这两个东西的列表一样 解决此问题的一种方法是调用list,从元组中生成一个列表:
def make_ends(x):
return list((x[0], x[-1]))
但最简单的方法是首先创建一个列表:
def make_ends(x):
return [x[0], x[-1]]
然后你问另一个问题:
这是我以前的构建,但除了返回原始字符串外,它什么也没做:
def go_right(str):
if str >= 2:
a = str[-2:0] + str
return a
让我们一步一步地看一遍
首先,str>=2将字符串与数字进行比较。在Python2.x中,要么所有字符串都大于所有数字,要么所有字符串都小于所有数字。这取决于实现。所以,这不是一个非常有用的检查
也许你想检查lenstr>=2?但即使这样,我也不确定你会得到什么。如果长度为0或1,您希望执行什么操作?实际上,您将不返回任何值,这可能是不对的
同时,str[-2:0]要求在结束之前的2之后但在开始之前的所有元素。在开始之前没有元素,因此这是空的。然后将原始值添加到此空集合中,从而获得原始值
另外,作为补充说明,调用参数str是个坏主意。除了隐藏内置str(一种将任何内容转换为字符串表示形式的函数)之外,它还强烈暗示您处理的是字符串,而不是列表。请尝试以下操作
def make_ends(x):
return [x[0], x[-1]]
在当前表单而不是列表中,您正在创建元组。这是逗号运算符在值之间放置时所做的操作非常接近。你只需要把报税表转换成一个列表
return [x[0], x[-1]]
您当前返回的是元组,而不是列表。只需将其用方括号括起来,即可将其列为列表:
def make_ends(x):
return [x[0], x[-1]]
然而,我想问你为什么首先想要一份清单。你知道你只返回了两个项目,所以你不需要它是可变的——在我看来,也许一个元组就是你到底想要的东西。处理这个任务确实有多种方法 其中一种可能是最常见的,也可能是最传统的
def make_ends(x):
return [x[0], x[-1]]
另一种方法
def make_ends(x):
finished = []
finished.append(x[0])
finished.append(x[1])
return finished
此外,还可以将字符串转换为列表,从而允许函数处理字符串
def make_ends(x):
x = list(x)
return [x[0], x[-1]]
你很接近你只需要把x[0]和x[-1]放在一个列表中,类似于return[x[0],x[-1]]为什么有人否决了这个答案?当然,它没有任何前两个答案中没有的额外信息,但这里没有错误、误导、解释不当或值得否决的地方。为什么在这里否决?这个解释有问题吗?几乎每个问题的答案都在没有解释的情况下被否决了。奇怪,我注意到有人对每个答案都投了反对票,除了这个。那是因为你是大众投票人,还是因为你在大众投票人出现后发布了你的答案?是的,看起来有人只是出于某种原因做了一次驾车投票。当我在JaredPar的回答中添加一条评论,询问为什么被否决时,有人否决了我的回答。当我在那里发表评论时,有人否决了其他3个答案…哦,好吧,从长远来看,这没有多大区别。我可能遗漏了一些东西,但似乎否决票是没有根据的。同意。你的答案没有添加任何前3个答案中没有的内容,但它仍然是一个非常好的答案。出于某种原因,所有的答案都被否决了,问题也是如此,没有任何解释。我想这没关系,因为他们最终还是按照他们应该的方式订购,而且我相信你通过向上投票加向下投票比没有投票获得更多的代表,但这仍然很烦人。是的,我在发布我的评论后看到了驾车经过。它没有添加任何内容,但与其他内容同时发布,基本上所有内容都同时命中,因为这是一个简单的q
def make_ends(x):
x = list(x)
return [x[0], x[-1]]