Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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 在“L[2:4]”中,“2:4”是什么?_Python_Slice - Fatal编程技术网

Python 在“L[2:4]”中,“2:4”是什么?

Python 在“L[2:4]”中,“2:4”是什么?,python,slice,Python,Slice,我读到Python中的所有内容都是对象。那么L[2:4]中的2:4是什么呢?它是一个切片对象吗?当我在解释器中键入2:4时,会出现一个SyntaxError。否,2:4不是独立的语法。语法将:-分隔的表达式转换为切片()对象,并且仅在[]项索引的上下文中有效切片()是一种内部类型,请参阅 lst[2:4]被转换为lst[slice(2,4,None)]。使用带有\uuu getitem\uuu方法的自定义类时,可以看到这一点: >>> class Demo: ... d

我读到Python中的所有内容都是对象。那么
L[2:4]
中的
2:4
是什么呢?它是一个切片对象吗?当我在解释器中键入
2:4
时,会出现一个
SyntaxError

否,
2:4
不是独立的语法。语法将
-分隔的表达式转换为
切片()
对象,并且仅在
[]
项索引的上下文中有效<代码>切片()是一种内部类型,请参阅

lst[2:4]
被转换为
lst[slice(2,4,None)]
。使用带有
\uuu getitem\uuu
方法的自定义类时,可以看到这一点:

>>> class Demo:
...     def __getitem__(self, item):
...         return item
... 
>>> d = Demo()
>>> d[2]
2
>>> d[2:4]
slice(2, 4, None)
>>> d[2::-2]
slice(2, None, -2)
您可以直接创建这些对象,
slice()
是内置类型:

>>> help(slice)
Help on class slice in module builtins:

class slice(object)
 |  slice(stop)
 |  slice(start, stop[, step])
 |  
 |  Create a slice object.  This is used for extended slicing (e.g. a[0:10:2]).
[ ... ]
部分触发
切片()
对象;您甚至可以传入多个切片,即使没有标准库类型支持这样的索引:

>>> d[10:, :-5, ::-1, :]
(slice(10, None, None), slice(None, -5, None), slice(None, None, -1), slice(None, None, None))
该元组中的最后一个片段仅由一个
表示

当您在索引中使用
时,将创建相关对象
省略号

>>> d[...]
Ellipsis

也没有标准的库类型使用它,但是Numpy项目严重依赖于这个单例对象和多片功能来处理结构化数据。

不,
2:4
不是独立的语法。语法将
-分隔的表达式转换为
切片()
对象,并且仅在
[]
项索引的上下文中有效<代码>切片()
是一种内部类型,请参阅

lst[2:4]
被转换为
lst[slice(2,4,None)]
。使用带有
\uuu getitem\uuu
方法的自定义类时,可以看到这一点:

>>> class Demo:
...     def __getitem__(self, item):
...         return item
... 
>>> d = Demo()
>>> d[2]
2
>>> d[2:4]
slice(2, 4, None)
>>> d[2::-2]
slice(2, None, -2)
您可以直接创建这些对象,
slice()
是内置类型:

>>> help(slice)
Help on class slice in module builtins:

class slice(object)
 |  slice(stop)
 |  slice(start, stop[, step])
 |  
 |  Create a slice object.  This is used for extended slicing (e.g. a[0:10:2]).
[ ... ]
部分触发
切片()
对象;您甚至可以传入多个切片,即使没有标准库类型支持这样的索引:

>>> d[10:, :-5, ::-1, :]
(slice(10, None, None), slice(None, -5, None), slice(None, None, -1), slice(None, None, None))
该元组中的最后一个片段仅由一个
表示

当您在索引中使用
时,将创建相关对象
省略号

>>> d[...]
Ellipsis

也没有标准的库类型使用它,但是Numpy项目严重依赖于这个单例对象和多片功能来处理结构化数据。

Python允许对列表和字符串进行切片。您需要为L创建一个对象,以使此语法正常工作。请尝试以下示例:

>>> L = [0,1,2,3,4,5,6]
>>> L[2:4]

>>> L = "This is a test"
>>> L[2:4]
>>> L[2:]
>>> L[:4]
>>> L[-3:]

Python允许对列表和字符串进行切片。您需要为L创建一个对象,以使此语法正常工作。请尝试以下示例:

>>> L = [0,1,2,3,4,5,6]
>>> L[2:4]

>>> L = "This is a test"
>>> L[2:4]
>>> L[2:]
>>> L[:4]
>>> L[-3:]

所以
如果
也是一个对象?;)所以
如果
也是一个对象?;)