我的问题的一个具体例子是,"在这个例子中我如何得到'3210'?"
>>> foo = '0123456'
>>> foo[0:4]
'0123'
>>> foo[::-1]
'6543210'
>>> foo[4:0:-1] # I was shooting for '3210' but made a fencepost error, that's fine, but...
'4321'
>>> foo[3:-1:-1] # How can I get '3210'?
''
>>> foo[3:0:-1]
'321'
Run Code Online (Sandbox Code Playgroud)
看起来很奇怪,我可以写foo [4:0:-1],foo [5:1:-1]等等,并得到我所期望的,但是没有办法写切片让我得到'3210 ".
这样做的临时方法是foo [0:4] [:: - 1],但这会在进程中创建两个字符串对象.我将在数十亿次执行此操作,因此每个字符串操作都很昂贵.
我一定要错过愚蠢和容易的事情.谢谢你的帮助!
我已经看到了三种将内容写入HTTP响应的方法:
func Handler(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "blabla.\n")
}
Run Code Online (Sandbox Code Playgroud)
和:
func Handler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("blabla\n"))
}
Run Code Online (Sandbox Code Playgroud)
还有:
fmt.Fprintf(w, "blabla")
Run Code Online (Sandbox Code Playgroud)
他们之间有什么区别?哪一个更喜欢使用?
切片索引具有有用的默认值; 省略的第一个索引默认为零,省略的第二个索引默认为要切片的字符串的大小.
>>> a = "hello"
>>> print(a[::-1])
olleh
Run Code Online (Sandbox Code Playgroud)
正如教程所说a[::-1]应该等于a[0:5:-1]
但是a[0:5:-1]如下所示是空的:
>>> print(len(a[0:5:-1]))
0
Run Code Online (Sandbox Code Playgroud)
问题不是解释切片符号的重复.那个问题是关于python中切片的一般用法.
我想要一个算法迭代列表切片.切片大小设置在功能之外,可以有所不同.
在我看来它是这样的:
for list_of_x_items in fatherList:
foo(list_of_x_items)
Run Code Online (Sandbox Code Playgroud)
有没有办法正确定义list_of_x_items或使用python 2.5执行此操作的其他方法?
edit1:澄清 "分区"和"滑动窗口"这两个术语听起来都适用于我的任务,但我不是专家.所以我会更深入地解释这个问题并添加到问题中:
fatherList是我从文件中获取的多级numpy.array.函数必须找到系列的平均值(用户提供系列的长度)平均我正在使用该mean()函数.现在进行问题扩展:
edit2:如何修改你提供的函数来存储额外的项目,并在下一个fatherList被输入函数时使用它们?
例如,如果列表长度为10且块的大小为3,则列表的第10个成员将被存储并附加到下一个列表的开头.
我正在尝试选择数据帧子集的子集,仅选择一些列,并对行进行过滤.
df.loc[df.a.isin(['Apple', 'Pear', 'Mango']), ['a', 'b', 'f', 'g']]
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误:
Passing list-likes to .loc or [] with any missing label will raise
KeyError in the future, you can use .reindex() as an alternative.
Run Code Online (Sandbox Code Playgroud)
现在切片和过滤的正确方法是什么?
假设我有一个学生城市列表,其大小可能是 100 或 1000,我想过滤掉所有重复的城市。
我想要一个通用的解决方案,可以用来从任何切片中删除所有重复的字符串。
我是 Go 语言的新手,所以我尝试通过使用另一个循环函数循环并检查元素是否存在来做到这一点。
学生所在城市列表(数据):
studentsCities := []string{"Mumbai", "Delhi", "Ahmedabad", "Mumbai", "Bangalore", "Delhi", "Kolkata", "Pune"}
Run Code Online (Sandbox Code Playgroud)
我创建的函数,它正在完成这项工作:
func contains(s []string, e string) bool {
for _, a := range s {
if a == e {
return true
}
}
return false
}
func removeDuplicates(strList []string) []string {
list := []string{}
for _, item := range strList {
fmt.Println(item)
if contains(list, item) == false {
list = append(list, item)
}
}
return list
}
Run Code Online (Sandbox Code Playgroud)
我的解决方案测试 …
有没有办法选择数据框的所有列,除了具有特定名称的列.
它是模拟的df[, -1],除了使用列名而不是索引?
我有点像一个python /编程新手,我刚刚玩弄字符串切片.所以简单的字符串反向方法就string[::-1]可以正常工作,但是我的代码中还有其他实例可以产生意想不到的结果:
In [1]: string = "Howdy doody"
In [2]: string[::]
Out[2]: 'Howdy doody'
In [3]: string[::-1]
Out[3]: 'ydood ydwoH'
In [4]: string[0:]
Out[4]: 'Howdy doody'
In [5]: string[0::-1]
Out[5]: 'H' # what up with this?
In [6]: string[:len(string)]
Out[6]: 'Howdy doody'
In [7]: string[:len(string):-1]
Out[7]: '' # what up with this too?
In [8]: string[0:len(string)]
Out[8]: 'Howdy doody'
In [9]: string[0:len(string):-1]
Out[9]: '' # And what up here too.
Run Code Online (Sandbox Code Playgroud)
我已经评论了上面的行,我希望字符串可以反转,但我很惊讶他们为什么不简单地反转字符串.谁知道那是什么?
我试图在python中重新实现一个IDL函数:
http://star.pst.qub.ac.uk/idl/REBIN.html
通过求平均值减去2d阵列的整数因子.
例如:
>>> a=np.arange(24).reshape((4,6))
>>> a
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
Run Code Online (Sandbox Code Playgroud)
我想通过取相关样本的平均值将其调整为(2,3),预期输出为:
>>> b = rebin(a, (2, 3))
>>> b
array([[ 3.5, 5.5, 7.5],
[ 15.5, 17.5, 19.5]])
Run Code Online (Sandbox Code Playgroud)
即b[0,0] = np.mean(a[:2,:2]), b[0,1] = np.mean(a[:2,2:4])等等.
我相信我应该重塑为4维数组,然后在正确的切片上取平均值,但无法弄清楚算法.你有什么提示吗?