python数组遍历输出所有组合_python遍历列表和数组实例讲解

python遍历实例总结

python同时遍历数组的索引和值的实例

你想在迭代一个序列的同时跟踪正在被处理的元素索引。

获取索引

内置的 enumerate() 函数可以很好的解决这个问题:

>>> my_list = ['a', 'b', 'c']

>>> for idx, val in enumerate(my_list):

... print(idx, val)

...

0 a

1 b

2 c

行号从1开始

为了按传统行号输出(行号从1开始),你可以传递一个开始参数:

>>> my_list = ['a', 'b', 'c']

>>> for idx, val in enumerate(my_list, 1):

... print(idx, val)

...

1 a

2 b

3 c

行号定位

这种情况在你遍历文件时想在错误消息中使用行号定位时候非常有用:

def parse_data(filename):

with open(filename, 'rt') as f:

for lineno, line in enumerate(f, 1):

fields = line.split()

try:

count = int(fields[1])

...

except ValueError as e:

print('Line {}: Parse error: {}'.format(lineno, e))

enumerate() 对于跟踪某些值在列表中出现的位置是很有用的。 所以,如果你想将一个文件中出现的单词映射到它出现的行号上去,可以很容易的利用 enumerate() 来完成:

word_summary = defaultdict(list)

with open('myfile.txt', 'r') as f:

lines = f.readlines()

for idx, line in enumerate(lines):

# Create a list of words in current line

words = [w.strip().lower() for w in line.split()]

for word in words:

word_summary[word].append(idx)

如果你处理完文件后打印 word_summary ,会发现它是一个字典(准确来讲是一个 defaultdict ), 对于每个单词有一个 key ,每个 key 对应的值是一个由这个单词出现的行号组成的列表。 如果某个单词在一行中出现过两次,那么这个行号也会出现两次, 同时也可以作为文本的一个简单统计。

计数变量

当你想额外定义一个计数变量的时候,使用 enumerate() 函数会更加简单。你可能会像下面这样写代码:

lineno = 1

for line in f:

# Process line

...

lineno += 1

但是如果使用 enumerate() 函数来代替就显得更加优雅了:

for lineno, line in enumerate(f):

# Process line

...

enumerate() 函数返回的是一个 enumerate 对象实例, 它是一个迭代器,返回连续的包含一个计数和一个值的元组, 元组中的值通过在传入序列上调用 next() 返回。

陷阱

还有一点可能并不很重要,但是也值得注意, 有时候当你在一个已经解压后的元组序列上使用 enumerate() 函数时很容易调入陷阱。 你得像下面正确的方式这样写:

data = [ (1, 2), (3, 4), (5, 6), (7, 8) ]

# Correct!

for n, (x, y) in enumerate(data):

...

# Error!

for n, x, y in enumerate(data):

...

参考:

python通过索引遍历列表的方法

Python推荐资源:

Python编程基础

本文实例讲述了python通过索引遍历列表的方法。分享给大家供大家参考。具体如下:

python中我们可以通过for循环来遍历列表:

colours = ["red","green","blue"]

for colour in colours:

print colour

如果希望遍历列表的同时得到元素的索引号,可以使用下面的代码:

colours = ["red","green","blue"]

for i, colour in enumerate(colours):

print i, colour

希望本文所述对大家的Python程序设计有所帮助。

Python实现带下标索引的遍历操作示例

Python推荐资源:

Python高级编程

本文实例讲述了Python实现带下标索引的遍历操作。分享给大家供大家参考,具体如下:

代码如下:

#coding=utf-8

#python - 实现带下标索引的遍历.

str = 'abcdefghigklmn'

#方式一:for

i = 0

for ch in str:

print('%d\t%s'%(i,ch))

i+=1

print('-'*50)

#方式二:enumerate()

for i,ch in enumerate(str):

print i,ch

运行结果:

0   a

1   b

2   c

3   d

4   e

5   f

6   g

7   h

8   i

9   g

10  k

11  l

12  m

13  n

--------------------------------------------------

0 a

1 b

2 c

3 d

4 e

5 f

6 g

7 h

8 i

9 g

10 k

11 l

12 m

13 n

希望本文所述对大家Python程序设计有所帮助。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dev c++ 代码补全_zsh配置与代码自动补全+tmux配置

先上链接ohmyzsh​github.comzsh-autosuggestions​github.comgpakosz/.tmux​github.com问题描述代码需要,更换了服务器,发现新服务器上zsh没有自动补全,难受得不行,并且没有个性化的配置,强迫症顶不住,tm…

android 获取栈顶activity,Android : 如何得到Activities栈顶的Activity名称

众所周知,Android中的任务等等都是通过栈来管理的,Activities的管理也不例外。栈这种数据结构是大家再熟悉不过了。它的先进后出特性让Android可以很容易实现从当前Activity回到或者重新启动先前的Activity.(注:当系统资源匮乏的时候,系统会释…

京东抢购助手_[Windows] 京东极速抢购助手V2.0,支持京东健康+扫货抢购

本软件仅供学习交流,完全免费,同时也为帮助有缘人能买到自用的口罩,度过这段特殊时期!请勿用于其它用途,谢谢!如有违规,请删帖!下载地址:https://www.lanzous.com/ia3bfl…

SQL Server 和 Oracle 以及 MySQL 有哪些区别?

SQL,在这里我理解成SQL Server。三者是目前市场占有率最高(依安装量而非收入)的关系数据库,而且很有代表性。排行第四的DB2(属IBM公司),与Oracle的定位和架构非常相似,就不赘述了。 …

LeetCode 1813. 句子相似性 III

文章目录1. 题目2. 解题1. 题目 一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格。 比方说,"Hello World" ,"HELLO" ,"hello world hello world" 都是句子。 每个单…

vim配置python开发环境_GitHub - TTWShell/legolas-vim: Vim配置,为python、go开发者打造的IDE。...

legolas-vim个人vim配置。支持python、go等自动提示,支持python、go的函数跳转(python支持虚拟环境)。 最终效果图(函数列表的feature已移除,因为大项目会导致性能问题):支持Python自动补全的最…

android 脚本引擎,GitHub - PassByYou888/zExpression: 脚本与编译器内部的语法引擎内核,也是一种op内核,zExpression可以轻松实现自己的脚本引擎...

zExpression 句法编译器解释器,脚本引擎内核技术体系解释:在编译原理的技术体系中,凡是处理文本化的代码前,都需要做一次预处理,其中我们常说的语法,语法糖,都是一种预处理程序词法:…

平面设计中的网格系统pdf_平面设计基础知识

导语:“ 给大家推荐优质书籍,包含平面设计基础入门知识的书籍分享”。平面设计基础知识分享书籍名称:《写给大家看的设计书》作者:[美]罗宾威廉姆斯著平面设计的四个原则:复杂的设计原理在《写给大家看的设计书》中凝炼…

LeetCode 1814. 统计一个数组中好对子的数目(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个数组 nums &#xff0c;数组中只包含非负整数。 定义 rev(x) 的值为将整数 x 各个数字位反转得到的结果。 比方说 rev(123) 321 &#xff0c; rev(120) 21 。我们称满足下面条件的下标对 (i, j) 是 好的 &#xff1a; 0 < i <…

如何看当前windows是utf8还是gbk_监理工程师5月份出教材,现在如何备考?

监理工程师教材预计5月份出版&#xff0c;相信考生都知道监理工程师教材对于考生复习的重要性&#xff0c;那么现在考生应该如何学习呢?听小编给你说一说。教材没有发布之前怎么学习?教材改动比较大&#xff0c;没有发布之前我们就不要学习了么?小编不这么认为&#xff0c;监…

巧用Hint

一般计算fibonacci的方法&#xff1a; 1 def fibonacci (n): 2 if n 0 or n 1: 3 return 1 4 else: 5 return fibonacci(n-1) fibonacci(n-2) 这样的 call graph for fibonacci with n4: 当计算 fibonacci(30)的时候还可以&#xff0c;当计算 fibon…

LeetCode 1816. 截断句子

文章目录1. 题目2. 解题1. 题目 句子 是一个单词列表&#xff0c;列表中的单词之间用单个空格隔开&#xff0c;且不存在前导或尾随空格。每个单词仅由大小写英文字母组成&#xff08;不含标点符号&#xff09;。 例如&#xff0c;"Hello World"、"HELLO"…

脸书令牌怎么使用_网工知识角|QOS技术令牌桶算法一分钟速记,考试无忧

点上方蓝字关注公众号&#xff0c;坚持每天技术打卡学网络&#xff0c;就在IE-LAB国内最著名的高端网络工程师培养基地QOS是网络服务质量技术&#xff0c;是所有考试中都会有的考点&#xff0c;主要在SP的课程中详述&#xff0c;是高中低级的网工都有必要了解的技术。今天我们来…

vivox27升级鸿蒙,vivo x27 系统更新好吗?

3月19日&#xff0c;vivo在三亚正式发布了vivo X27和vivo X27 Pro两款产品&#xff0c;继续采用了升降式摄像头以实现“真全面屏”。vivo X27配备了一块6.39英寸super AMOLED屏幕&#xff0c;比例为19.5:9&#xff0c;屏占比达到了91.6%&#xff0c;并应用了第六代屏幕指纹HD版…

根据XML更新Userprofile

#  Using powershell code, update the user profile base on the XML file.#  Date: 2015-01-29 # Update New User Property$snapin Get-PSSnapin | Where-Object {$_.Name -eq Microsoft.SharePoint.Powershell} if ($snapin -eq $null) { Write-Host "L…

LeetCode 1817. 查找用户活跃分钟数(哈希)

文章目录1. 题目2. 解题1. 题目 给你用户在 LeetCode 的操作日志&#xff0c;和一个整数 k 。 日志用一个二维整数数组 logs 表示&#xff0c;其中每个 logs[i] [IDi, timei] 表示 ID 为 IDi 的用户在 timei 分钟时执行了某个操作。 多个用户 可以同时执行操作&#xff0c;单…

日期传递过程_买东西别再只看生产日期和保质期了!快算算你一天吃了多少添加剂?...

开始今天的科普前&#xff0c;微医君先和大家讲一下我们办公室上周出现的“假”全麦面包事件。全麦面包是很多减肥人士最热衷的食物之一&#xff0c;小A也不例外。结果上周微医君帮她买面包时&#xff0c;就发现小A平时经常买的全麦面包是“假”的。为什么明明包装上写着“全麦…

第二次打开不是最大_舵手图解:大盘日线第二次形成买点信号

吾股舵手个人微信公众号&#xff1a;股民读书会&#xff08;ID&#xff1a;gumindushuihui&#xff09;声明&#xff1a;只做客观解读&#xff0c;不做主观预测&#xff0c;仅供参考&#xff0c;不作交易依据。择时看大盘&#xff0c;选股看行业。股票咨询请在文末留言。大盘涨…

Window phone用手机来控制电脑的多媒体播放

为了用电脑看电影时方便控制&#xff0c;我就突发其想&#xff0c;做一个手机app来通过无线网络远程调节电脑上的音量。后来进行尝试成功后&#xff0c;我就想&#xff0c;光是调音量似乎单调了些&#xff0c;就把播放/暂停&#xff0c;上一首&#xff0c;下一首&#xff0c;等…

华为正式发布鸿蒙智慧屏,5499 元、21999 元,2021 款华为智慧屏 V55/V85 明日 0 点正式开售:搭载鸿蒙系统...

IT之家 5 月 28 日消息 在今年 4 月份的华为全屋智能及智慧屏旗舰新品发布会上&#xff0c;华为智慧屏 V 系列 2021 款正式发布。新产品外观更加简洁&#xff0c;底部音响组件进一步隐藏&#xff0c;同时依旧采用弹出式 2400 万像素 AI 摄像头。今天&#xff0c;华为官方宣布&a…