gio*_*aia 8 python variables list python-3.x
我想写这样的代码:
index = 0:2
print(list[index])
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
有什么办法可以将[...:...]语法的所有部分存储在变量中吗?
Mar*_*ers 18
你想要一个slice()对象:
index = slice(0, 2)
print(somelist[index])
Run Code Online (Sandbox Code Playgroud)
slice()将您可以在[start:stop:stride]订阅语法中指定的开始,停止和步幅值建模 为对象.
从文档:
返回表示由指定的索引集的切片对象
range(start, stop, step).start和step参数默认为None.切片对象具有只读数据属性start,stop并且step仅返回参数值(或其默认值).
在幕后,Python实际上slice()在调用自定义__getitem__方法时将订阅转换为对象:
>>> class Foo(object):
... def __getitem__(self, item):
... return item
...
>>> Foo()[42:81:7]
slice(42, 81, 7)
>>> Foo()[:42]
slice(None, 42, None)
Run Code Online (Sandbox Code Playgroud)
一个可行的替代方案是将start和stop存储为单独的值:
startindex = 0
stopindex = 2
print(somelist[start:stop])
Run Code Online (Sandbox Code Playgroud)
Mos*_*oye 11
您可以改为创建一个slice对象:
index = slice(0,2)
print(lst[index])
Run Code Online (Sandbox Code Playgroud)
注意不要使用list名称来避免阴影内置list函数.
来自文档:
slice(start, stop[, step])返回表示由指定的索引集的切片对象
range(start, stop, step)