Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.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索引,如MATLAB';完二〇〇四年四月二日(星期二)_Python_Matlab_Syntax - Fatal编程技术网

Python索引,如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]

MATLAB有一个非常方便的语法来获取列表的一半:

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中也会失败