python之切片与迭代

取一个列表或元组的部分元素是非常常见的操作。

n=[]
(n[]n[])

当取多个元素时,可以用python自带的切片(slice)

n=[]
(n[:])
[123, 234]

n[0:2]表示,从索引0开始,直到索引2为止,但不包含索引2,即索引0,1,正好是2个元素,如果第一个元素是0还可以省略

print(n[:2])

也可以从索引1开始,取两个元素

n=[]
(n[:])
[234, 456]

倒数第一个元素的索引是-1

操作切片十分有用,先创建一个0-99的数列:

L=(())
(L)
(L[:])

取最后10个

L=(())
(L[-:])
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

所有数,每5个取一个,在【开始:结束:步长】

L=(())
(L[::])
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45]

复制一个列表

L[:]

tuple也是一个list,只是tuple不可变,所以tuple也可以做切片,结果仍然是tuple

print((1,2,3,4,5,6)[:3])
(1,2,3,4,5,6)为元组[:3]为切片操作

字符串也可以看成是一种list,每个元素就是一个字符串,因此字符串也可以用切片操作,结果仍为字符串

([:])
([::])

迭代

如果给定一个list或tuple,我们可以用for循环来遍历,这种遍历称之为迭代。

list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代

因为dict不是按照list的方式顺序排列,所以迭代出的结果顺序很可能不一样。默认情况下,dict迭代的是key,如果要迭代value,可以用

for  value in d.values():,如果要同时迭代key和value,可以用for  k,v in d.items()。

字符串也可以迭代

所以对于for循环,只要作用于一个可迭代对象,for就能正常运行。

判断一个对象是否能迭代的方法

collections模块的

Iterable类型

实现对list的下标循环

enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身。

ivalue  ([]):
    (ivalue)

上面的循环,同时引用两个变量,在python里很常见,下面示例

原文地址:http://blog.51cto.com/13272050/2107010

时间: 2024-11-15 22:11:58

python之切片与迭代的相关文章

Python中的可迭代对象与迭代器对象

刚刚学习Python,对“可迭代对象”和"迭代器对象"的个人理解,不知道对不对. 1.几个概念 1.迭代工具:包括for循环.列表解析.in成员关系测试.....等等在内的,用于依次访问可迭代对象(容器)内元素的操作(?). 2.迭代器对象:具有__next__()方法的对象.该方法能够自动返回下一个结果,当到达序列结尾时,引发StopIteration异常. 3.可迭代对象:具有__iter__()方法的对象.该方法可获取其迭代器对象. 2.迭代过程(以for循环为例) for循环开

探寻Python中如何同时迭代多个iterable对象

题外话: 最近因为课程需要开始深入了解Python语言.因为以前一直用的Java.C++等强类型的静态语言,现在突然使用Python确实感受到了很大的不同. 直观感觉就是,在Python中总是能找到一些让代码变得精巧.简洁.高效.美观的写法,使得初学者在写代码的过程充满了惊喜,从而渐渐喜欢上Python.而且Python的官方手册阅读起来感觉非常好,很多问题都描述的很清楚.不过总体来说,还是觉得Java大法好:) Python中一个非常有用的语法就是for in循环跟iterable对象的结合,

初学Python(八)——迭代

初学Python(八)——迭代 初学Python,主要整理一些学习到的知识点,这次是迭代. # -*- coding:utf-8 -*- from collections import Iterable ''''' 迭代 ''' L = ['af','st','at','psst','beta'] D = {1:'af',2:'st',3:'at',4:'psst',5:'beta'} S = 'helloworld' #数组 for item in L: print item #字典 for

python:切片字符

python的切片字符:(:) 1.单切片字符 python的切片字符用于元组.字符串或者列表,采用的是左闭右开,即包含冒号左侧的第N个个数,不包含右侧的数,下面以列表示例: >>> a=[1,2,3,4] >>> a[1:] [2, 3, 4] >>> a[1:3] [2, 3] >>> a[:3] [1, 2, 3] >>> 2.双切片字符 双切片:(::)一般是用于取其中几位元素或者倒换字符串元组列表等,写法也

Python 专用方法和迭代机制

Python 设计哲学是"优雅"."明确"."简单",对于一件事只用一种最好的方法来做,而这种优雅在于背后很自然的隐藏了很多细节.比如对一些对象直接用for 语句来迭代,一些全局函数可以作用于很多具有共同特征的对象,还有生成器装饰器自省等特性.其中很多实现都是借助 Python  内部专用方法,而对外则使用统一的全局函数来进行操作,在配合一些语法糖,使得 Python 写起来愈发的方便,符合人的直觉. Python 专用方法 类的私有方法:以双线

queryList 一次抓取多个网页内容的方法--目前只有用循环 替换页码或者给出url循环进行 queryList没有像python一样的yied迭代方法 queryList 实现多个实例抓取不同网页的内容,两个实例数据互不干扰

注意: 目前只有用循环 替换页码或者给出url循环进行   queryList没有像python一样的yied迭代方法  queryList 实现多个实例抓取不同网页的内容,两个实例数据互不干扰 新技能获取: Medoo(轻量级php数据库框架:https://medoo.lvtao.net/) 实现循环采集多个页面数据: 关键代码  for ($i = 1; $i < 21; $i++) { echo "正在爬取第{$i}页\n"; $url = "http://bl

Python的高级特性之切片、迭代、列表生成式、生成器

切片 切片就是获取一个list.tuple.字符串等的部分元素 1 l = range(100) 2 #取[0,5)元素 3 print(l[:5]) #[0, 1, 2, 3, 4] 4 #在[0,99]中每隔10个元素取一个 5 print( l[::10]) #[0, 10, 20, 30, 40, 50, 60, 70, 80, 90] 6 #取最后五个元素 7 print( l[-5 : ]) #[95, 96, 97, 98, 99] 8 9 str = "www.genekang.

python基础IV(切片、迭代、生成列表)

对list进行切片 取一个list的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] 取前3个元素,应该怎么做? 笨办法: >>> [L[0], L[1], L[2]] ['Adam', 'Lisa', 'Bart'] 之所以是笨办法是因为扩展一下,取前N个元素就没辙了. 取前N个元素,也就是索引为0-(N-1)的元素,可以用循环: >>> r = [] >>

python学习进度8(切片和迭代)

切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 取前3个元素,应该怎么做? 笨办法: >>> [L[0], L[1], L[2]] ['Michael', 'Sarah', 'Tracy'] 之所以是笨办法是因为扩展一下,取前N个元素就没辙了. 取前N个元素,也就是索引为0-(N-1)的元素,可以用循环: >>>