用了这么久python,这个用法都不知道。惭愧惭愧。学东西杂而不精。
python可以简单快速的将list和string切片。以前一直只知道一个冒号的使用方法,写东西麻烦了不少。惭愧惭愧。
一个冒号的首尾切片非常简单。就这样的。
a=[0,1,2,3,4,5,6,7]
a[:-1]
#[0, 1, 2, 3, 4, 5, 6]
a[3:5]
#[3, 4]
#这里注意,返回的数字是3和4,也就是说它实际上截取了a[3]和a[4],a[5]是不截取的
a[3:-3]
#[3, 4]
#-3就是去掉后面三个数。
两个冒号时,第二个冒号代表步数,默认为1,也就是说,如果想跳着切奇数位或者偶数位,只需写成[::2]
a=[0,1,2,3,4,5,6,7]
a[::2]
#[0, 2, 4, 6]
a[::-2]
#[7, 5, 3, 1]
a[1::2]
#[1, 3, 5, 7]
#从1开始取,取奇数个
a[1:6:2]
#[1, 3, 5]
#从a[1]切到a[5],两步一切
a[1:5:2]
#[1, 3]
#从a[1]切到a[4],两步一切
a[::-1]
#[7, 6, 5, 4, 3, 2, 1, 0]
#倒序取值
a[:2:-1]
#[7, 6, 5, 4, 3]
#就是取a[2:][-1]
a[2::-1]
#[2, 1, 0]
#就是取a[:2+1][-1]
当 a[m:n:-1] ,m和n不为空,不为默认极值(-1,-len(a))时,取出来是空。取不到,把所有的都切掉了。