python for 循环

简介: python for 循环

for的基本操作

for是用来循环的,是从某个对象那里依次将元素读取出来。

>>> name_str = "hiekay"
>>> for i in name_str:  #可以对str使用for循环
...     print i,
...                     
h i e k a y

>>> name_list = list(name_str)
>>> name_list
['h', 'i', 'e', 'k', 'a', 'y']
>>> for i in name_list:     #对list也能用
...     print i,
... 
h i e k a y

>>> name_set = set(name_str)    #set还可以用
>>> name_set
set(['a', 'e', 'i', 'h', 'k', 'y'])
>>> for i in name_set:
...     print i,
... 
h i e k a y

>>> name_tuple = tuple(name_str)
>>> name_tuple
('h', 'i', 'e', 'k', 'a', 'y')
>>> for i in name_tuple:        #tuple也能呀
...     print i,
... 
h i e k a y

>>> name_dict={"name":"hiekay","lang":"python","website":"hiekay.github.io"}
>>> for i in name_dict:             #dict也不例外
...     print i,"-->",name_dict[i]
... 
lang --> python
website --> hiekay.github.io
name --> hiekay

for在list解析中,用途也不可小觑,这在讲解list解析的时候,也已说明,不过,还是再复习一下为好,所谓学而时常复习之,不亦哈哈乎。

>>> one = range(1,9)         
>>> one
[1, 2, 3, 4, 5, 6, 7, 8]
>>> [ x for x in one if x%2==0 ]
[2, 4, 6, 8]

将上面所说的for循环,概括一下,就是下图所示:

image.png

用一个文字表述:

for iterating_var in sequence:
    statements

iterating_var是对象sequence的迭代变量,也就是sequence必须是一个能够有某种序列的对象,特别注意没某种序列,就是说能够按照一定的脚标获取元素。当然,文件对象属于序列,我们没有用脚标去获取每行,如果把它读取出来,因为也是一个str,所以依然可以用脚标读取其内容。

zip

zip是什么东西?在交互模式下用help(zip),得到官方文档是:

zip(...) zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]

Return a list of tuples, where each tuple contains the i-th element from each of the argument sequences. The returned list is truncated in length to the length of the shortest argument sequence.

通过实验来理解上面的文档:

>>> a = "hiekay"
>>> b = "github"
>>> zip(a,b)
[('h', 'g'), ('i', 'i'), ('e', 't'), ('k', 'h'), ('a', 'u'), ('y', 'b')]
>>> c = [1,2,3]
>>> d = [9,8,7,6]
>>> zip(c,d)
[(1, 9), (2, 8), (3, 7)]
>>> e = (1,2,3)
>>> f = (9,8)
>>> zip(e,f)
[(1, 9), (2, 8)]
>>> m = {"name","lang"}  
>>> n = {"hiekay","python"}
>>> zip(m,n)
[('lang', 'python'), ('name', 'hiekay')]
>>> s = {"name":"hiekay"}
>>> t = {"lang":"python"}
>>> zip(s,t)
[('name', 'lang')]

zip是一个内置函数,它的参数必须是某种序列数据类型,如果是字典,那么键视为序列。然后将序列对应的元素依次组成元组,做为一个list的元素。

下面是比较特殊的情况,参数是一个序列数据的时候,生成的结果样子:

>>> a  
'hiekay'
>>> c  
[1, 2, 3]
>>> zip(c)
[(1,), (2,), (3,)]
>>> zip(a)
[('q',), ('i',), ('w',), ('s',), ('i',), ('r',)]

这个函数和for连用,就是实现了:

>>> c
[1, 2, 3]
>>> d
[9, 8, 7, 6]
>>> for x,y in zip(c,d):    #实现一对一对地打印
...     print x,y
... 
1 9
2 8
3 7
>>> for x,y in zip(c,d):    #把两个list中的对应量上下相加。
...     print x+y
... 
10
10
10

上面这个相加的功能,如果不用zip,还可以这么写:

>>> length = len(c) if len(c)<len(d) else len(d)    #判断c,d的长度,将短的长度拿出来
>>> for i in range(length):
...     print c[i]+d[i]
... 
10
10
10

以上两种写法那个更好呢?还可以这么做呢:

>>> [ x+y for x,y in zip(c,d) ]
[10, 10, 10]

前面多次说了,list解析强悍呀。当然,还可以这样的:

>>> [ c[i]+d[i] for i in range(length) ]
[10, 10, 10]
目录
相关文章
|
3月前
|
测试技术 Python
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。
52 1
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
|
3月前
|
Python
揭秘Python编程核心:一篇文章带你深入掌握for循环与while循环的奥秘!
【8月更文挑战第21天】Python中的循环结构——for循环与while循环,是编程的基础。for循环擅长遍历序列或集合中的元素,如列表或字符串;而while循环则在未知循环次数时特别有用,基于某个条件持续执行。本文通过实例展示两种循环的应用场景,比如用for循环计算数字平方和用while循环计算阶乘。此外,还通过案例分析比较了两者在处理用户输入任务时的不同优势,强调了根据实际需求选择合适循环的重要性。
53 0
|
26天前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
31 4
|
1月前
|
Java 索引 Python
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
66 5
|
1月前
|
Python
Python 循环语句的高级应用与深度探索
本文深入探讨了Python中循环语句的高级应用,包括`for`循环遍历字典获取键值、同步遍历多个序列,以及`while`循环结合条件判断和异常处理。通过嵌套循环实现了矩阵乘法,并介绍了如何优化循环以提升程序性能。示例代码展示了这些技术的实际应用。
50 15
|
1月前
|
数据安全/隐私保护 Python
Python循环语句
【10月更文挑战第7天】
|
2月前
|
Python
Python 中如何循环某一特定列的所有行数据
Python 中如何循环某一特定列的所有行数据
|
1月前
|
Java C++ Python
【Python】循环语句(while、for)、continue、break
【Python】循环语句(while、for)、continue、break
39 0
|
2月前
|
存储 前端开发 索引
11个Python循环技巧
本文介绍了在Python中使用循环创建多个列表的方法,并提供了丰富的代码示例。内容涵盖根据固定数量、条件、数据类型、属性、索引范围、哈希值等不同条件创建列表的技巧,展示了如何灵活运用循环和列表推导式,提高代码的灵活性与可维护性,加速开发流程并提升程序性能。
|
3月前
|
搜索推荐 Python
Python基础编程:冒泡排序和选择排序的另一种while循环实现
这篇文章介绍了Python中冒泡排序和选择排序的实现,提供了使用while循环的替代方法,并展示了排序算法的运行结果。
30 2
Python基础编程:冒泡排序和选择排序的另一种while循环实现
下一篇
无影云桌面