浅谈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爬虫之urllib2中的两个重要概念:Openers和Handlers
Nov 05 Python
Python编写登陆接口的方法
Jul 10 Python
Python获取系统所有进程PID及进程名称的方法示例
May 24 Python
python3中的md5加密实例
May 29 Python
python读取和保存图片5种方法对比
Sep 12 Python
python 判断参数为Nonetype类型或空的实例
Oct 30 Python
Python将一个Excel拆分为多个Excel
Nov 07 Python
淘宝秒杀python脚本 扫码登录版
Sep 19 Python
Jupyter打开图形界面并画出正弦函数图像实例
Apr 24 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
Python常用外部指令执行代码实例
Nov 05 Python
简单谈谈Python面向对象的相关知识
Jun 28 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
source.php查看源文件
2006/12/09 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
微信公众号实现会员卡领取功能
2017/06/08 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
javascript 打印页面代码
2009/03/24 Javascript
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
使用PYTHON接收多播数据的代码
2012/03/01 Python
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
Python计算一个文件里字数的方法
2015/06/15 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
公司财务工作总结的自我评价
2013/11/23 职场文书
发展部经理职责规定
2014/02/22 职场文书
演讲主持词
2014/03/18 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
雨中的树观后感
2015/06/03 职场文书
vue如何清除浏览器历史栈
2022/05/25 Vue.js