python_高级特征

切片 Slice  :

 取一个tuple的前三个元素,传统做法如下 :

for i in range(3):
    dataList.append(testTuple[i])
    if i == 2:
       print(dataList)

打印:['鲁班', '韩信', '孙尚香']

切片做法 testTiple[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引012,正好是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']

猜你喜欢

转载自www.cnblogs.com/shaoqizhi/p/9427476.html