Python [ ]、[:]和[::]的用法

对切片进行操作:

[ ]: 主要是取序列中的一个元素,例如:str_list[2]取序列中的第3个元素,这里2指序列中的index。

[:]: 主要是取序列中的一段元素,例如 str_list[1:4] 表示访问 str_list 序列中的第二到第四个元素 (str_list[1],str_list[2],str_list[3]),不包含 str_list[4] 元素。

如果没有提供索引值,则默认从 0 开始。str_list[:4] 表示访问这个序列的第一到第四个元素 (不包含 str_list[4] 元素),str_list[4:] 表示访问第五到最后一个元素。注意:m\n可以为负,m>n时返回空。

[::]:主要逆序和间隔取序列中的元素,例如:(1)翻转序列的元素,例如 str_list[::-1] 表示翻转取序列中的元素, str_list 序列中的元素。(2):间隔取元素:str_list[1::2],从索引1开始,每次跳2个取取元素。注意:当n为负时逆序取数,当n为正的时候,m为空则默认m=0,n为负时,m为空则默认为-1。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import absolute_import
from __future__ import print_function
from __future__ import division

import os
import sys
import cv2
import numpy as np
import matplotlib.pyplot as plt

print(16 * "++--")

str_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
print("str_list:", str_list)
print("str_list[3]:", str_list[3])
print("str_list[1:4]:", str_list[1:4])
print("str_list[:4]:", str_list[:4])
print("str_list[4:]:", str_list[4:])
print("str_list[::-1]:", str_list[::-1])
print("str_list[::2]:", str_list[::2])
---------------------------------------------------

++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--
str_list: ['A', 'B', 'C', 'D', 'E', 'F', 'G']
str_list[3]: D
str_list[1:4]: ['B', 'C', 'D']
str_list[:4]: ['A', 'B', 'C', 'D']
str_list[4:]: ['E', 'F', 'G']
str_list[::-1]: ['G', 'F', 'E', 'D', 'C', 'B', 'A']
str_list[::2]: ['A', 'C', 'E', 'G']

Process finished with exit code 0

切片操作符在 Python中的原型是 [start:stop:step],[开始索引:结束索引:步长值]。
开始索引:从 0 开始。序列从左向右方向中,第一个值的索引为 0,最后一个为 -1。
结束索引:切片操作符将取到该索引为止,不包含该索引的值
步长值:默认是一个接着一个切取。如果为 2,则表示进行隔一取一操作。步长值为正时表示从左向右取。如果为负,则表示从右向左取。步长值不能为 0。
[:] 就是原样复制一个 list。


import os
import sys
import cv2
import numpy as np

print(16 * "++--")
str_data = 'abcdefg'
print("str_data[3]:", str_data[3])
print("str_data[3:5]:", str_data[3:5])
print("str_data[:5]:", str_data[:5])
print("str_data[3:]:", str_data[3:])
print("str_data[::2]:", str_data[::2])
print("str_data[::-1]:", str_data[::-1])
print("str_data[-1]:", str_data[-1])
print("str_data[-2]:", str_data[-2])
print("str_data[-5:-2]:", str_data[-5:-2])
print("str_data[-2:-5]:", str_data[-2:-5])
--------------------------------------------------

++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--
str_data[3]: d
str_data[3:5]: de
str_data[:5]: abcde
str_data[3:]: defg
str_data[::2]: aceg
str_data[::-1]: gfedcba
str_data[-1]: g
str_data[-2]: f
str_data[-5:-2]: cde
str_data[-2:-5]: 

Process finished with exit code 0

  • 10
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值