Res*_*her 1 python list delimiter slice
lines = file('info.csv','r').readlines()
counts = []
for i in xrange(4):
counts.append(fromstring(lines[i][:-2],sep=',')[0:-1])
Run Code Online (Sandbox Code Playgroud)
如果有人能向我解释这个代码,我将不胜感激.我似乎无法在切片上找到更高级的例子 - 只是非常简单的解释这种情况的例子.
非常感谢你.
小智 5
切片采用形式o[start:stop:step],所有这些都是可选的.start默认为0,第一个索引.stop默认为len(o),列表的指示上的闭合上限.step默认为1,包括列表的每个值.
如果指定负值,则表示与列表末尾的偏移量.例如,[-1]访问列表中的最后一个元素,然后访问倒数-2第二个元素.
如果1为步骤输入非值,则将包含不同的元素或以不同的顺序包含它们.2会跳过其他所有元素.3每三个人中就会跳过两个.-1会在列表中倒退.
[:-2]由于start省略,因此默认为列表的开头.一个stop的-2指示排除最后两个元素.因此o[:-2]切片列表以排除最后两个元素.
[0:-1]在0这里是多余的,因为那是开始将反正都默认为.这与另一个切片相同,只是它只排除了最后一个元素.
序列也支持切片:
a[i:j]选择与指数的所有项目k这样i <= k < j.当用作表达式时,切片是相同类型的序列.这意味着索引集重新编号,以便从0开始.一些序列还支持使用第三个"step"参数的"扩展切片":
a[i:j:k]选择带索引的所有项目,x其中x = i + n*k, n >= 0和i <= x < j.
Python 2.3文档中的"新内容"部分也会在将它们添加到语言中时对它们进行讨论.
理解切片语法的一个好方法是将其视为等效for循环的语法糖.例如:
L[a:b:c]
Run Code Online (Sandbox Code Playgroud)
相当于(例如,在C中):
for(int i = a; i < b; i += c) {
// slice contains L[i]
}
Run Code Online (Sandbox Code Playgroud)
当a默认0,b默认为len(L),并c默认为1.
(如果c步骤是一个负数,则默认值为a和b.这会给出一个合理的结果L[::-1]).
然后你需要知道的另一件事是,在Python中,索引"环绕",这L[-1]表示列表中的最后一项,L[-2]是倒数第二项,依此类推.
| 归档时间: |
|
| 查看次数: |
2554 次 |
| 最近记录: |