Traversing a list

The most common way to traverse the elements of a list is with a for loop. The syntax is the same as for strings:

This works well if you only need to read the elements of the list. But if you want to write or update the elements, you need the indices. A common way to do that is to combine the functions range and len:

This loop traverses the list and updates each element. len returns the number of elements in the list. range returns a list of indices from 0 to n-1, where n is the length of the list. each time through the loop I gets the index of the next element. The assignment statement in the body uses I to read the old value of the element and to assign the new value.

A for loop over an empty list never executes the body:

Although a list can contain another list, the nested list still counts a single element. The length of this list is four:

from Thinking in Python

Traversing a list,布布扣,bubuko.com

时间: 2024-10-15 03:17:58

Traversing a list的相关文章

jQuery 源码分析和使用心得 - 文档遍历 ( traversing.js )

jQuery之所以这么好用, 首先一点就是$()方法和它强大的选择器. 其中选择器使用的是sizzle引擎, sizzle是jQuery的子项目, 提供高效的选择器查询. 有个好消息告诉大家, 就是sizzle可以独立使用, 如果你觉得jQuery太大但又非常喜欢它的选择器, 那不妨可以用sizzle. 感兴趣的话可以到官方网站了解. 本系列内部不准备解析sizzle的源码, 一是sizzle内容相对独立, 二是内容主要涉及算法, 与整体的代码设计关系不大, 三嘛, 我的实力有限, 遇到算法就退

遍历二叉树 traversing binary tree 线索二叉树 threaded binary tree 线索链表 线索化

遍历二叉树   traversing binary tree 线索二叉树 threaded binary tree 线索链表 线索化 二叉树3个基本单元组成:根节点.左子树.右子树 以L.D.R分别表示遍历左子树.访问根节点.遍历右子树 可能的情况6种 排列A3 2 LDR LRD DLR DRL RLD RDL 若限定先左后右 LDR LRD  中根序遍历  后根序遍历 DLR  先根序遍历 先/中/后 序遍历 原文地址:https://www.cnblogs.com/yuanjiangw/p

Efficiently traversing InnoDB B+Trees with the page directory--slot

Efficientlytraversing InnoDB B+Trees with the page directory 1.the purpose of the page directory As described in the posts mentioned above,all records in INDEX pages are linked together in a singly-linked list inascending order. However, list travers

HashMap的尾部遍历问题--Tail Traversing

在看网上HashMap的resize()设计时,提到尾部遍历. JDK1.7的HashMap在实现resize()时,新table[]的列表采用LIFO方式,即队头插入.这样做的目的是:避免尾部遍历. 避免尾部遍历是为了避免在新列表插入数据时,遍历到队尾的位置.因为,直接插入的效率更高. 对resize()的设计来说,本来就是要创建一个新的table,列表的顺序不是很重要. 但如果要确保插入队尾,还得遍历出链表的队尾位置,然后插入,是一种多余的损耗. 直接采用队头插入,会使得链表数据倒序 例如原

POJ/obc - Step Traversing a Tree

即黑书里的"隔三遍历",具体分析见黑书,我只是想了下证明没啥好说的. #include <cstdio> #define MAXV 5005 #define MAXE ((MAXV << 1) - 2) int N; int Vefw[MAXE], Vt[MAXE], Veh[MAXV], Veptr; int V_b8[MAXV]; int leafrch(int s) { int ret = s; V_b8[s] = 1; for(int e = Veh[s

HashMap的resezi方法中尾部遍历出现死循环问题 Tail Traversing (多线程)

一.背景介绍: 在看HashMap源码是看到了resize()的源代码,当时发现在将old链表中引用数据复制到新的链表中时,发现复制过程中时,源码是进行了反序,此时是允许反序存储的,同时这样设计的效率要高,不用采用尾部插入,每次都要遍历到尾部. 下面对该原理进行总结: JDK1.7的HashMap在实现resize()时,新table[]的列表采用LIFO方式,即队头插入.这样做的目的是:避免尾部遍历.尾部遍历是为了避免在新列表插入数据时,遍历队尾的位置.因为,直接插入的效率更高. 直接采用队头

【树4】二叉树的遍历

简介 遍历二叉树就是按照某种顺序,将树中的结点都枚举一遍,且每个结点仅仅访问一次.因为树不是线性的结构,遍历不像线性表那样简单,因此他的遍历需要特点的算法来完成. 从某种角度讲,对二叉树的遍历就是将树形结构转换为线性结构的操作. 二叉树的遍历方法主要有如下几种: 先序遍历:先访问root结点,再先序遍历左子树,再先序遍历右子树. 中序遍历:先中序遍历左子树,再访问root结点,再中序遍历右子树. 后序遍历:先后序遍历左子树,再后序遍历右子树,再访问root结点. 层遍历:从上到下,从左到右,一层

洛谷 P1339 [USACO09OCT]热浪Heat Wave

题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for good eating but are not so adept at creating creamy delicious dairy products. Farmer John is leading the charge to deliver plenty of ice cold nutritiou

Android模拟位置信息

Android模拟位置程序,俗称GPS欺骗,只能修改采用GPS定位的软件. 手机定位方式目前有4种:基站定位,WIFI定位,GPS定位,AGPS定位 常见的修改手法: 1. 抓包欺骗法,抓包改包欺骗服务器端, 但是得专门去针对某款app,而且现在很多app数据包都加密了 2. hook java层经纬度获取函数, 这个方法以前可以用,现在不行了 3. hook native层经纬度获取函数 4. 使用允许模拟地址位置信息(不是很通用有版本限制) 为了修改微信朋友圈地理位置信息,为了好玩 试过了上