我需要编写一个名为make\u 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
从元组中生成一个列表:但最简单的方法是首先创建一个列表:
然后你问另一个问题:
让我们一步一步地讲一遍。你知道吗
首先,
str >= 2
将字符串与数字进行比较。在Python2.x中,要么所有字符串都大于所有数字,要么所有字符串都小于所有数字。(这由实现决定)所以,这不是一个非常有用的检查。你知道吗也许你想改为检查
if len(str) >= 2
?但即使这样,我也不确定那会给你带来什么。如果长度是0或1,您想做什么?实际上,您应该返回None
,这可能是不对的。你知道吗同时,
str[-2:0]
要求所有在2之后-在结束之前,但在开始之前的元素。在开始之前没有元素,所以这是空的。然后将原始值添加到这个空集合中,得到原始值。你知道吗另外,作为补充说明,调用参数
str
是个坏主意。除了它隐藏了内置的str
(这是一个将任何内容转换为其字符串表示形式的函数)之外,它还强烈暗示您要处理的是一个字符串,而不是一个列表。你知道吗您当前返回的是元组,而不是列表。只需将其括在方括号中,即可将其列为一个列表:
然而,我想问你为什么要一份清单放在首位。你知道你只返回两个项目,所以你不需要它是可变的-在我看来,也许一个元组是你想要的毕竟在这里。你知道吗
请尝试以下操作
在当前表单而不是列表中,您正在创建一个元组。这是逗号运算符在值之间放置时所做的操作
相关问题 更多 >
编程相关推荐