切片 Slice :
取一个tuple的前三个元素,传统做法如下 :
for i in range(3): dataList.append(testTuple[i]) if i == 2: print(dataList) 打印:['鲁班', '韩信', '孙尚香']
切片做法 testTiple[0:3]
表示,从索引0
开始取,直到索引3
为止,但不包括索引3
。即索引0
,1
,2
,正好是3个元素。
testTuple = ('鲁班', '韩信', '孙尚香', '后羿') print(testTuple[0:3]) 打印:('鲁班', '韩信', '孙尚香')
取前十和后十
L = list(range(100)) print('前十:%s \n 后十:%s' % (L[:10], L[-10:])) 打印:前十:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 后十:[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
神奇的地方来了,相对于OC来说,python的字符串截取用切片变得更加简单:
str = 'asdfghb' print(str[:3]) 打印:asd
迭代:
如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:
>>> from collections import Iterable >>> isinstance('abc', Iterable) # str是否可迭代 True >>> isinstance([1,2,3], Iterable) # list是否可迭代 True >>> isinstance(123, Iterable) # 整数是否可迭代 False
如何打印索引和元素:enumerate函数实现
for i ,value in enumerate(['a', 'b', 'c']): print(i, value) 打印: 0 a 1 b 2 c
列表生成式
c = list(range(1, 4)) print(c) 打印: [1, 2, 3]
a = [m+n for m in ['abs'] for n in ['def']] print(a) 打印: ['absdef']