您的位置:首页 > 编程语言 > Python开发

Python中列表和字符串的切片

2020-02-02 18:08 591 查看

在使用Python解题的过程中,遇到这样的情况:
我需要将列表逆转再与原来的列表比较是否相同。作为小白,我第一个想到的就是reverse()
既有如下代码:

# 1.将列表逆转后赋值给新的列表
list_num2 = list_num.reverse()

后来很尴尬的发现新列表的值总是为空,经过查找后发现这个方法是没有返回值的
上面的方法行不通,又想到一个办法:

# 将列表的值赋值给新的列表,再将新列表逆转
list_num2 = list_num
list_num2.reverse

运行的时候发现两个列表的值总是一样的。原因是Python中的赋值是地址赋值,新列表获取到原列表的地址,在这个地址上对列表进行操作,所以两个列表会同步变化。

这个时候切片的重要性就体现出来,对列表进行切片操作时才会产生新的列表。

# 返回值 = 列表名[初始下标:结束下标(切片不包括自己):步长]

In [30]: list_num = [1, 2, 3, 4, 5]

In [31]: list_num
Out[31]: [1, 2, 3, 4, 5]

In [32]: list_num[::2]  # 下标默认开头或结尾
Out[32]: [1, 3, 5]

In [33]: list_num[0:4]  # 步长默认为1
Out[33]: [1, 2, 3, 4]

In [34]: list_num[::-1]  # 步长为负,从后向前切片,列表的逆转
Out[34]: [5, 4, 3, 2, 1]

字符串的切片操作与列表相同

这时候实现上述功能就很简单了

list_num2 = list_num[::2]
  • 点赞
  • 收藏
  • 分享
  • 文章举报
LiuLllDDdd 发布了35 篇原创文章 · 获赞 4 · 访问量 1039 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: