美文网首页
Python 切片与迭代

Python 切片与迭代

作者: keinYe | 来源:发表于2018-12-25 21:58 被阅读17次

切片

切片是 python 中截取列表、元组或字符串中部分元素的快捷方法,使用 [] 来实现。

切片的完整写法 [起始元素:终止元素:间隔元素个数]

先来看一个简单的示例

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

list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(list[0:2])
print(list[:2])
print(list[:8:2])
print(list[-2:-1])
print(list[-2:])
print(list[-6::2])
print(list[:])
print(type(list[:2]))

以上代码运行结果如下

[0, 1]
[0, 1]
[0, 2, 4, 6]
[9]
[9, 10]
[5, 7, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
<class 'list'>

从以上示例的执行结果,我们可以得到以下结论:

  1. list[0:2], 表示从索引 0 开始直至索引 2 截止,但是不包括索引 2 的值。
  2. 当起始索引为 0 时可以省略起始索引,此时可写作 list[:2]。
  3. 切片同样支持负值索引。
  4. 当使用负值索引时,结束索引为 -1 时,可省略结束结束索引。
  5. 可是使用 list[:] 来完整复制一个列表。
  6. list 的切片同样是一个 list。

切片同样可应用在元组上,元组的切片同样是一个元组且不可修改。

>>> slice = (0, 1, 2, 3, 4, 5)[:3]
>>> print(slice)
(0, 1, 2)
>>> type(slice)
<class 'tuple'>
>>> slice[0] = 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>

迭代

迭代在维基百科上的解释如下

迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。

我么通过 for 循环来遍历 list、tuple、dict 等,这种遍历我们称之为迭代。

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

list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for n in list:
    print(n)

以上是一个简单的迭代,通过 for 循环我们可以依次获取 list 中的元素。
执行结果如下

0
1
2
3
4
5
6
7
8
9
10

在 python 中只要是可迭代对象,均可以使用 for 循环依次获取对象的内容。我们可以通过 isinstance 函数来判断一个对象是否是可迭代对象。

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from collections import Iterable

print(isinstance('123', Iterable))
print(isinstance([1,2, 3], Iterable))
print(isinstance(123, Iterable))

以上代码执行结果如下

True
True
False

从执行结果上我们可以看出字符串「'123'」和列表「[1, 2, 3]」是可迭代对象,而整数 123 是不可迭代对象。

相关文章

  • Python的高级特性

    切片 list切片 tuple切片 str切片 迭代 在Python中迭代是通过for ... in ...来实现...

  • Python 切片与迭代

    切片 切片是 python 中截取列表、元组或字符串中部分元素的快捷方法,使用 [] 来实现。 切片的完整写法 ...

  • Python -- 切片、迭代

    切片 1、取一个list或tuple的部分元素,采用切片方式:L[0:3]:表示从索引0开始取,直到索引3为止,但...

  • Python之高级特性

    Python中的五种特性:切片,迭代,列表生成式,生成器,迭代器。 切片 切片就相当于其他语言中的截断函数,取部分...

  • Python:4.高级特性

    切片 迭代 列表生成式 生成器 迭代器 参考 廖雪峰的Python教程

  • Python入门基础二(高级特性)

    概述 所说高级特性包括切片、迭代、列表生成式、迭代器、生成器。 切片 Python学习一(基础)中列表和元组的基本...

  • Python高级特性

    一、切片(适用list,tuple,str) 二、迭代(Iterable) Python中,只要是可迭代对象就可以...

  • Python进阶:迭代器与迭代器切片

    2018-12-31 更新声明:切片系列文章本是分三篇写成,现已合并成一篇。合并后,修正了一些严重的错误(如自定义...

  • Python 切片、迭代、遍历

    迭代 Iterable list、tuple、str、bytes、dict、range、generator、set...

  • python基础知识(拓展篇--"怎样更python")

    切片[起始位置:结束位置:间隔数]//一般使用切片截取某一片段的数字。 迭代//迭代一般用于遍历,python中的...

网友评论

      本文标题:Python 切片与迭代

      本文链接:https://www.haomeiwen.com/subject/vuiqlqtx.html