使用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在数组中做了所有事情,我想知道是否有类似的东西.
我需要在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)
你可以去游乐场看看.那为什么我不能复制一片?
我正在尝试为我正在创建的类创建切片功能,以创建矢量表示.
到目前为止我有这个代码,我相信它会正确地实现切片,但每当我做一个调用,就像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) 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更直接/更好的方法?
如何确定切片中存在的元素的位置?
我需要以下内容:
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) 通常情况下,我发现需要成对处理列表.我想知道哪个是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代码,我不知道是什么
pop = population[:]
Run Code Online (Sandbox Code Playgroud)
手段.它是像Java中的数组列表还是像二维数组?可以感谢一些帮助,谢谢.
所以我想创建一个列表,它是一些现有列表的子列表.
例如,
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)
但我想知道是否有其他方法可以有效地以较少的步骤进行相同的操作.
在Golang,var s []int和之间有什么区别s := make([]int, 0)?
我发现两者都有效,但哪一个更好?
什么是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)
什么是切片?