Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python初学者(列表)_Python_Python 2.7 - Fatal编程技术网

Python初学者(列表)

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

我需要编写一个名为make_ends的函数,它接收一个参数-一个列表。它返回一个新列表,其中包含输入列表的第一项和最后一项

这是我的代码,但它并没有把它分成一个列表。我有点不知道该怎么做。我需要使用.join功能吗?如果是,我该怎么做?我想我很接近了

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]]