浅谈python for循环的巧妙运用(迭代、列表生成式)


Posted in Python onSeptember 26, 2017

介绍

我们可以通过for循环来迭代list、tuple、dict、set、字符串,dict比较特殊dict的存储不是连续的,所以迭代(遍历)出来的值的顺序也会发生变化。

迭代(遍历)

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
vlist=['a','b','c']
vtuple=('a','b','c')
vdict={'a': 1, 'b': 2, 'c': 3}
vset={'a','b','c'}
vstr='abc'
for x in vlist:
 print('list:',x)
for x in vtuple:
 print('tuple:',x)
for x in vdict:
 print('dict:',x)
for x in vset:
 print('set:',x)
for x in vstr:
 print('str:',x)
list: a
list: b
list: c
tuple: a
tuple: b
tuple: c
dict: c
dict: a
dict: b
set: a
set: b
set: c
str: a
str: b
str: c

判断一个对象是可迭代对象可以通过collections模块的Iterable类型判断:

>>> from collections import Iterable
>>> isinstance('abc', Iterable) 
True
>>> isinstance([1,2,3], Iterable) 
True
>>> isinstance(123, Iterable)

多值for操作

>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
 print(x,y)

1 1
2 4
3 9

生成下标

>>> for x, y in enumerate(['a', 'b', 'c']):
 print(x, y)

 
0 a
1 b
2 c

生成列表

1.列出1到10的平方列表

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
L=[]
for x in range(1,11):
 L.append(x*x)


print(L)[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

python提供了更简便的方法处理这个需求

>>> [x*x for x in range(1,11)]


[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.添加判断条件

只取列表中的偶数

>>> [x*x for x in range(1,11) if x%2==0]
[4, 16, 36, 64, 100]

3.多个for同时判断

>>> [m+n for m in 'ABC' for n in'abc']
['Aa', 'Ab', 'Ac', 'Ba', 'Bb', 'Bc', 'Ca', 'Cb', 'Cc']

4.获取dict中的value

一般for操作只能获取dict中的key而无法获取到value,可以利用items获取到values

>>> d={'a': 'A', 'b': 'B', 'c': 'C'}
>>> [k + '=' + v for k,v in d.items()]
['c=C', 'a=A', 'b=B']

注意:由于dict是单个key-value所以在for之前不能直接使用k,v for k,v这样代表k,v是多个key而不是指key-value,所以只能进行计算,但是如果计算的话又必须保证key和value是相同的数据类型否则无法进行+操作

针对key和value是不同的数据类型可以使用普通的for循环,使用print输出

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
d={'a': 1, 'b': 2,'c': 3}
for k,v in d.items():
 print(k,'=',v)

5.list中所有的字符串变成小写

>>> L = ['Hello', 'World', 'IBM', 'Apple']
>>> [s.lower() for s in L]
['hello', 'world', 'ibm', 'apple']

总结

python语法太巧妙了,主要归结于它强大的库,让使用python可以少些很多底层的代码。

以上这篇浅谈python for循环的巧妙运用(迭代、列表生成式)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python代码调试的几种方法总结
Apr 15 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
Jun 14 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
Python reversed函数及使用方法解析
Mar 17 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 Python
python3实现常见的排序算法(示例代码)
Jul 04 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 #Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
Sep 26 #Python
python九九乘法表的实例
Sep 26 #Python
Python实现简单的HttpServer服务器示例
Sep 25 #Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 #Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 #Python
Python实现破解猜数游戏算法示例
Sep 25 #Python
You might like
PHP获取网站域名和地址的代码
2008/08/17 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
jquery限制输入字数,并提示剩余字数实现代码
2012/12/24 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
医学专业个人求职自荐信格式
2013/09/23 职场文书
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
制冷与电控专业应届生求职信
2013/11/11 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
文秘应届生求职信
2014/07/05 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
预备党员介绍人意见
2015/06/01 职场文书
小学班主任研修日志
2015/11/13 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript