python的截取非常方便,类似于在数组直接取值
可以截取数组和字符串
L['a','b','c'] L[s:e:t]表示s表示开始下标,e表示结束下标但不包含结束下标,t表示每隔几个取第一个(解释为截取出n段,每段取第一个,组成新数组返回),e,s可以取负值,负值第一位为-1,
t可以省略,当L[:]表示新复制一个数组返回
eg,取1-100内3的倍数,取出前10位,取最后10个
L = range(1,101)
end = L[2::3]
end1 = L[:10]
end2 = L[-10:]
迭代:enumerate,可以把list转化成list内的每一个数据编程tuple,
L = ['asd','qwe','zxc']
enumerate(L)
==>[(0,'asd'),(1,'qwe'),(2,'zxc')]
#循环
for kv in enumerate(L):
k = kv[0]
v = kv[1]
print k,'-',v
#进化为
for k,v in enumerate(L):
print k,'-',v
注:zip:组合函数
a = ['b', 'c', 'd', 'e']
b = ['11','22','33','44']
c = zip(a,b)
[('b', '11'), ('c', '22'), ('d', '33'), ('e', '44')]
dict列表:values(),itervalues()和items()方法
values()是取出values组成一个list返回,
itervalues()是不取出,感觉是把地址(指针)指向每一个value,只能在迭代过程中直接取出values,当原地址内值变化后,再次循环后数值会跟着变化
d = {'a': 6, 'b': 7, 'c': 8, 'd': 9 }
L = d.values()
# L = [6,7,8,9]
L1 = L.itervalues()
# 直接在控制台打印L1,会是一个地址:<dictionary-valueiterator object at 0x0367EE40>
# 需要用遍历表示出来:for k in L1:print k 输出为6,7,8,9
item()方法是把json转化为json型list
d = {'a': 6, 'b': 7, 'c': 8, 'd': 9 }
L = d.item()
#L ==> [('a': 6), ('b': 7), ('c': 8), ('d': 9)]