|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 人zai旅途 于 2016-9-18 22:06 编辑
知识点:
当需要从列表一次性取出多个元素时,需要通过列表分片的方式来实现,其基本形式是列表名[左索引值:右索引值:步长],左右索引值及步长都可以省略,左索引值省略时表明,列表元素从0开始,右索引值省略表示包含左索引值右边的所有元素,步长省略表明步长为1。例如:
member = ['小甲鱼','黑夜','牡丹','怡静']
split1 = member[1:3],则列表split1为 ['黑夜','牡丹'] #member本身元素并没有发生变化,相当于生成了包含元素1和2的新列表
split2 = member[:3],则列表split2为 ['小甲鱼','黑夜','牡丹'] #表示从第0个索引值开始
split3 = member[1:],则列表split3为 ['黑夜','牡丹','怡静'] #表示从左索引值开始到列表右边所有元素
split4 = member[:],则列表split4为 ['小甲鱼','黑夜','牡丹','怡静'] #相当于复制了一份原列表
另外,python支持负数索引,-1相当于列表中右侧第一个元素值,以此类推。步长也允许为负值,举例说明:
split5 = member[-1:-3:-1],则列表split5为['怡静', '牡丹']
split6 = member[-3:-1:1],则列表split5为['黑夜', '牡丹']
问题:
1、步长是指从做索引值往右边数几个元素吗?负数怎么理解?
2、左索引值省略好理解,也好识别,但是右索引值和步长的省略如何区分?
比如split1 = member[1:3],步长是1吗?
split2 = member[:3],有步长吗?
3、索引为负数时,是从右往做取数吗?
split5 = member[-1:-3:-1],则列表split5为['怡静', '牡丹']
split6 = member[-3:-1:1],则列表split5为['黑夜', '牡丹']
怎么感觉这两个取数的方法不一致呢?split5是从右边,split却是和正数一样,从左边。 |
|