Python索引,如MATLAB';完二〇〇四年四月二日(星期二)
MATLAB有一个非常方便的语法来获取列表的一半:Python索引,如MATLAB';完二〇〇四年四月二日(星期二),python,matlab,syntax,Python,Matlab,Syntax,MATLAB有一个非常方便的语法来获取列表的一半: x(1:end/2) 我知道python的语法是 x[:len(x)/2] 在这种情况下这很好,因为len(x)很容易编写。但是,当列表的名称很长时(有时需要),这种语法会变得更麻烦,当列表中有类似的长名称时,这种语法会更麻烦 我知道这是一个真正的冒险,但是python有没有像MATLAB那样的语法选项?没有专门的语法。如果您需要经常这样做,请编写一个函数: def half_list(l): return l[:len(l)/2]
x(1:end/2)
我知道python的语法是
x[:len(x)/2]
在这种情况下这很好,因为len(x)
很容易编写。但是,当列表的名称很长时(有时需要),这种语法会变得更麻烦,当列表中有类似的长名称时,这种语法会更麻烦
我知道这是一个真正的冒险,但是python有没有像MATLAB那样的语法选项?没有专门的语法。如果您需要经常这样做,请编写一个函数:
def half_list(l):
return l[:len(l)/2]
不,python中的列表没有概念
end
(类似的概念是索引-1
)。解决您的问题的简单(但不推荐)解决方案是:
l = longnamelist
l[:len(l)/2]
或复制/粘贴长名称。。。(有些编辑器有一个复制单词的快捷方式,这使得复制/粘贴一个长名称非常容易。)我要指出,您认为MATLAB的语法是完全错误的。x[:end/2]将由于几个原因而失败。x(1:end/2)将成功。注意重要的区别。@Mike:我按照woodchips的说明更正了代码。您还应该知道,当向量长度为奇数时,MATLAB(至少是最新版本)将发出警告。例:
x=1:5;x(1:end/2)
将打印警告:冒号运算符用作索引时需要整数操作数
。您可以使用:x(1:fix(end/2))
。。。显然,在Python 3中也会失败