标签: slice

如何在Ruby中返回数组的一部分?

使用Python中的列表,我可以使用以下代码返回它的一部分:

foo = [1,2,3,4,5,6]
bar = [10,20,30,40,50,60]
half = len(foo) / 2
foobar = foo[:half] + bar[half:]
Run Code Online (Sandbox Code Playgroud)

由于Ruby在数组中做了所有事情,我想知道是否有类似的东西.

ruby arrays list slice

113
推荐指数
5
解决办法
13万
查看次数

为什么我不能在Golang中用`copy()`复制一个切片?

我需要在Go中复制一个切片并阅读文档,我可以使用复制功能.

复制内置函数将元素从源切片复制到目标切片.(作为一种特殊情况,它还会将字符串中的字节复制到一个字节片段.)源和目标可能重叠.Copy返回复制的元素数,这将是len(src)和len(dst)的最小值.

但当我这样做时:

arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
Run Code Online (Sandbox Code Playgroud)

tmp以前是空的(我甚至试图使用arr, tmp):

[]
[1 2 3]
Run Code Online (Sandbox Code Playgroud)

你可以去游乐场看看.那为什么我不能复制一片?

go slice

103
推荐指数
5
解决办法
8万
查看次数

Python:在__getitem__中实现切片

我正在尝试为我正在创建的类创建切片功能,以创建矢量表示.

到目前为止我有这个代码,我相信它会正确地实现切片,但每当我做一个调用,就像v[4]v是一个向量python返回一个关于没有足够的参数的错误.所以我试图弄清楚如何getitem在我的类中定义特殊方法来处理普通索引和切片.

def __getitem__(self, start, stop, step):
    index = start
    if stop == None:
        end = start + 1
    else:
        end = stop
    if step == None:
        stride = 1
    else:
        stride = step
    return self.__data[index:end:stride]
Run Code Online (Sandbox Code Playgroud)

python slice python-datamodel

99
推荐指数
5
解决办法
6万
查看次数

如何将Slice加入String?

package main

import (
"fmt"
"strings"
)

func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}
Run Code Online (Sandbox Code Playgroud)

给我一个错误:

prog.go:10:不能使用reg(类型[3]字符串)作为字符串参数中的类型[]字符串.加入

有没有比循环和添加到var更直接/更好的方法?

go slice

98
推荐指数
3
解决办法
11万
查看次数

如何找出切片中的元素位置?

如何确定切片中存在的元素的位置?

我需要以下内容:

type intSlice []int

func (slice intSlice) pos(value int) int {
    for p, v := range slice {
        if (v == value) {
            return p
        }
    }
    return -1
}
Run Code Online (Sandbox Code Playgroud)

position go slice

96
推荐指数
8
解决办法
8万
查看次数

单列表中的对

通常情况下,我发现需要成对处理列表.我想知道哪个是pythonic和有效的方法,并在谷歌上找到了这个:

pairs = zip(t[::2], t[1::2])
Run Code Online (Sandbox Code Playgroud)

我认为这是pythonic足够的,但在最近讨论成语与效率之后,我决定做一些测试:

import time
from itertools import islice, izip

def pairs_1(t):
    return zip(t[::2], t[1::2]) 

def pairs_2(t):
    return izip(t[::2], t[1::2]) 

def pairs_3(t):
    return izip(islice(t,None,None,2), islice(t,1,None,2))

A = range(10000)
B = xrange(len(A))

def pairs_4(t):
    # ignore value of t!
    t = B
    return izip(islice(t,None,None,2), islice(t,1,None,2))

for f in pairs_1, pairs_2, pairs_3, pairs_4:
    # time the pairing
    s = time.time()
    for i in range(1000):
        p = f(A)
    t1 = time.time() - s

    # time using the pairs …
Run Code Online (Sandbox Code Playgroud)

python zip idioms list slice

87
推荐指数
3
解决办法
5万
查看次数

这是什么意思?

我正在分析一些Python代码,我不知道是什么

pop = population[:]
Run Code Online (Sandbox Code Playgroud)

手段.它是像Java中的数组列表还是像二维数组?可以感谢一些帮助,谢谢.

python arrays syntax slice

87
推荐指数
6
解决办法
6万
查看次数

在奇数位置提取列表元素

所以我想创建一个列表,它是一些现有列表的子列表.

例如,

L = [1, 2, 3, 4, 5, 6, 7],我想创建一个子列表li,li包含L奇数位置的所有元素.

虽然我可以做到

L = [1, 2, 3, 4, 5, 6, 7]
li = []
count = 0
for i in L:
    if count % 2 == 1:
        li.append(i)
    count += 1
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有其他方法可以有效地以较少的步骤进行相同的操作.

python list slice

87
推荐指数
3
解决办法
11万
查看次数

声明切片还是制作切片?

在Golang,var s []int和之间有什么区别s := make([]int, 0)

我发现两者都有效,但哪一个更好?

allocation go slice

86
推荐指数
4
解决办法
5万
查看次数

什么是Swift片?

什么是Swift中的切片,它与数组有何不同?

从文档中,下标(Range)的类型签名是:

subscript(Range<Int>) -> Slice<T>
Run Code Online (Sandbox Code Playgroud)

为什么不返回另一个Array<T>而不是一个Slice<T>

看起来我可以将切片与数组连接起来:

var list = ["hello", "world"]
var slice: Array<String> = [] + list[0..list.count]
Run Code Online (Sandbox Code Playgroud)

但这会产生错误:

找不到接受提供的参数的'下标'的重载

var list = ["hello", "world"]
var slice: Array<String> = list[0..list.count]
Run Code Online (Sandbox Code Playgroud)

什么是切片?

slice swift

85
推荐指数
3
解决办法
4万
查看次数

标签 统计

slice ×10

go ×4

python ×4

list ×3

arrays ×2

allocation ×1

idioms ×1

position ×1

python-datamodel ×1

ruby ×1

swift ×1

syntax ×1

zip ×1