python 切片,字符串逆序神器

字符串、列表、元组在python中都符合“序列”这一特征,只要符合这一特征的变量我们都可以用切片(slice)去存取它们的任意部分。我们可以把序列想像成一个队列,我可能需要前面三位、后面三位、或从第三位后的四位、或隔一个取一个等,我们用切片操作符来实现上述要求。

切片操作符在python中的原型是
[start:stop:step]  即:[开始索引:结束索引:步长值]

步长>0 切片操作从左往右进行
步长<0 切片操作从右往左进行

a="0123456789"
print a [:]         :0123456789
print a[0:-1]    :012345678
print a[::-1]     :9876543210   逆序字符串神器

list 逆序用list.reverse()


2016.08.15
今天同事问了我一道面试题
一行代码生成:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30], [31, 32, 33], [34, 35, 36], [37, 38, 39], [40, 41, 42], [43, 44, 45], [46, 47, 48], [49, 50, 51], [52, 53, 54], [55, 56, 57], [58, 59, 60], [61, 62, 63], [64, 65, 66], [67, 68, 69], [70, 71, 72], [73, 74, 75], [76, 77, 78], [79, 80, 81], [82, 83, 84], [85, 86, 87], [88, 89, 90], [91, 92, 93], [94, 95, 96], [97, 98, 99], [100]]

初一看,就是用列表推导,但是最后面的[100]很难处理。
最后还是得用切片来做
[range(1,101)[i:i+3] for i in range(0,100,3)]

你可能感兴趣的:(Python)