由于习惯使用 Matlab 语法,现在我正在使用 Python,所以这个示例令人困惑:
我有一个列表,我想访问它的最后一个元素,可以说
list_a = [0,1,2,3,4,5,6,7,8,9]
在Python中我必须做
list_a [-1] = 9
,而在Matlab中我会做list_a(end)
所以在我看来Python中的
-1
表示最后一个元素,与Matlab中的end
关键字相同。
然后我想访问列表中的最后 5 个元素,包括最后一个。
在 Matlab 中我会做
list_a (6:end)
。 Matlab 数组的第一个索引是 1,而不是像 Python 中的 0,这就是为什么我必须从索引 6 开始。
在我看来,执行
list_a[5:-1]
是合乎逻辑的,因为 -1
表示列表的最后一项,如上例所示。然而,这在Python中不起作用,因为返回的结果是[5, 6, 7, 8]
所以要在Python中获取列表的最后一个元素,我必须执行list_a[5:]
并留空
我不知道他们为什么决定这样做,但我想知道 Python 中是否有一些东西可以像 Matlab 中的 end 关键字一样用于列表索引和切片。谢谢你
对数组进行切片时,例如
list[x:y]
,不包括 y。 python 切片数组的方式是从 x
开始,到 y-1
结束。
现在,当你在切片列表时添加
None
关键字时,Python 会将其视为列表的末尾。例如,如果我执行 list[1:None]
,它将抓取索引 1 到最后一个索引。令人困惑,但这就是 python 的工作原理。
留空与
None
相同。因此,在您的示例中, list_a[5:]
与 list_a[5:None]
相同。
对于你的问题,从技术上讲,你可以使用
None
作为 python 中的 END 关键字。
创建最小的数字: 您有一个由数字组成的正数 n。您最多可以执行一项操作:选择数字中某个数字的索引,删除该索引处的该数字,然后将其插入到数字中的另一个数字或同一位置,以找到您可以获得的最小数字。
输入
输入将是一个字符串
输出
输出应该是一个包含 3 个元素的数字数组
你得到的最小的数字 你取的数字d的索引i,i尽可能小 插入数字 d 以获得最小数字的索引 j(尽可能小)。 例子
最小(261235) --> [126235, 2, 0]
说明 126235 是在索引 2 处取 1 并将其放在索引 0 处得到的最小数字
最小(209917) --> [29917, 0, 1] 或 ...
说明 [29917, 1, 0] [29917, 0, 1] 都可以是一个解,但由于 [29917, 1, 0] 中的索引
i
大于
索引 i
在 [29917, 0, 1] 中,解将是 [29917, 0, 1]
最小(1000000) --> [1, 0, 6]
0000001 是在索引 6 处取 0 并将其放在索引 0 处得到的最小数字
在下面的代码中修复它:
def 求解(输入 1): # TODO: 在这里实现函数逻辑
return output;