标签: slice

如何切片NSMutableArray

我有一个NSMutableArray,只需要对象[0:5].是否有一种简单的切片方法?可以在索引后删除所有对象吗?我可以将子数组复制到另一个NSMutableArray吗?

objective-c slice nsmutablearray

21
推荐指数
2
解决办法
1万
查看次数

python列表中的不连续切片

我正在寻找一种实现这一目标的有效方法,我认为这是一种类似切片的操作:

>>> mylist = range(100)
>>>magicslicer(mylist, 10, 20)
[0,1,2,3,4,5,6,7,8,9,30,31,32,33,34,35,36,37,38,39,60,61,62,63......,97,98,99]
Run Code Online (Sandbox Code Playgroud)

这个想法是:切片得到10个元素,然后跳过 20个元素,然后得到下一个10,然后跳过20个,依此类推.

我认为如果可能的话我不应该使用循环,因为使用切片的原因是(我猜)在单个操作中有效地进行"提取".

谢谢阅读.

python performance list slice

21
推荐指数
2
解决办法
3605
查看次数

在python中访问列表或字符串的非连续元素

据我所知,这不是正式不可能的,但通过切片访问列表的任意非顺序元素是否有"技巧"?

例如:

>>> L = range(0,101,10)
>>> L
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
Run Code Online (Sandbox Code Playgroud)

现在我希望能够做到

a,b = L[2,5]
Run Code Online (Sandbox Code Playgroud)

这样a == 20b == 50

除了两个陈述之外的一种方式是愚蠢的:

a,b = L[2:6:3][:2]
Run Code Online (Sandbox Code Playgroud)

但这根本不会按不规则的间隔进行扩展.

也许使用列表理解使用我想要的索引?

[L[x] for x in [2,5]]
Run Code Online (Sandbox Code Playgroud)

我很想知道这个常见问题的推荐方法.

python string indexing list slice

21
推荐指数
4
解决办法
1万
查看次数

Go-lang:如何将切片转换为固定大小的数组?

我想从切片转换固定大小的数组:

func gen(bricks []Brick) {
    if len(bricks) == 16 {
        if check(Sculpture{bricks}) {
            var b [16]Brick = bricks[0:16];
        }
     }
}
Run Code Online (Sandbox Code Playgroud)

但这会导致:

 cannot use bricks[0:16] (type []Brick) as type [16]Brick in assignment
Run Code Online (Sandbox Code Playgroud)

如何将切片转换为固定大小的数组?

arrays go slice

21
推荐指数
1
解决办法
2万
查看次数

在go中排序uint64切片

我正在使用Go 1.7rc3编写Go应用程序.

我有一片uint64(var dirRange []uint64),我想排序.

sort包有一个功能,sort.Ints()但它需要[]int和我一样[]uint64.

我该怎么办?我可以输入所有切片吗?

谢谢

go slice

21
推荐指数
2
解决办法
1万
查看次数

为什么Go中有数组?

我理解Go中数组和切片之间的区别.但我不明白的是为什么有数组是有帮助的.为什么数组类型定义指定长度和元素类型有帮助?为什么我们使用的每个"数组"都不能成为切片?

arrays go slice

21
推荐指数
1
解决办法
1992
查看次数

使用元组创建切片

在python中有什么方法可以使用元组作为切片的索引吗?以下内容无效:

>>> a = range(20)
>>> b = (5, 12)   # my slice indices
>>> a[b]          # not valid
>>> a[slice(b)]   # not valid
>>> a[b[0]:b[1]] # is an awkward syntax
[5, 6, 7, 8, 9, 10, 11]
>>> b1, b2 = b
>>> a[b1:b2]      # looks a bit cleaner
[5, 6, 7, 8, 9, 10, 11]
Run Code Online (Sandbox Code Playgroud)

这似乎是一个合理的pythonic语法,所以我很惊讶,我不能这样做.

(更新)解决方案原来是:

>>> a[slice(*b)]
[5, 6, 7, 8, 9, 10, 11]
Run Code Online (Sandbox Code Playgroud)

python arrays tuples slice python-3.x

20
推荐指数
2
解决办法
6601
查看次数

为什么我不能将字符串附加到字节切片作为Go引用指定?

引用Go参考append

作为一种特殊情况,将字符串附加到字节切片是合法的,如下所示:
slice = append([]byte("hello "), "world"...)

但我觉得我不能这样做,因为这个片段:

package main
import "fmt"

func main(){
    a := []byte("hello")
    s := "world"
    a = append(a, s) //*Error*: can't use s(type string) as type byte in append 
    fmt.Printf("%s",a)
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

string go slice

20
推荐指数
1
解决办法
1万
查看次数

在不省略开始和结束切片的情况下反转Python字符串

如何在不省略开始和结束切片参数的情况下反转Python字符串?

word = "hello"
reversed_word = word[::-1]
Run Code Online (Sandbox Code Playgroud)

我知道这有效,但是如何通过指定开始和结束索引来获得结果呢?

word = "hello"
reversed_word = word[?:?:-1]
Run Code Online (Sandbox Code Playgroud)

很难向学生解释为什么要word[::-1]反转弦乐.如果我能给他们逻辑推理而不是"它是pythonic方式",那就更好了.

我解释的方式word[::1]如下:"你没有指定开始,所以它只是从一开始就开始.你没有指定结束,所以直到结束.现在步骤是1所以它只是从开始到最后1个字符由1." 现在,当我的学生看到word[::-1]他们会想到"我们没有指定开头或结尾,所以它一次会经过字符串-1个字符?"

python reverse slice

20
推荐指数
3
解决办法
1563
查看次数

为什么通过切片分配超出列表末尾不会引发IndexError?

我正在研究稀疏列表实现,最近通过切片实现了赋值.这让我发现Python的内置list实现中的一些行为让我感到惊讶.

给定一个空的list和通过切片的赋值:

>>> l = []
>>> l[100:] = ['foo']
Run Code Online (Sandbox Code Playgroud)

我本来期望IndexErrorlist这里开始,因为实现它的方式意味着无法从指定的索引中检索项目::

>>> l[100]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

'foo' 甚至无法从指定的切片检索:

>>> l = []
>>> l[100:] = ['foo']
>>> l[100:]
[]
Run Code Online (Sandbox Code Playgroud)

l[100:] = ['foo'] 附加list(也就是说,l == ['foo']在此作业之后)并且看起来自BDFL的初始版本以来就表现出这种方式.我无法在任何地方找到此功能(*),但CPython和PyPy都以这种方式运行.

按索引分配会引发错误:

>>> l[100] = 'bar'
Traceback (most recent call last):
  File "<stdin>", …
Run Code Online (Sandbox Code Playgroud)

python list variable-assignment slice

20
推荐指数
2
解决办法
1274
查看次数