常规版本

简单的 for 循环遍历

x_n = ["x1","x2","x3"]
for x in x_n:
print(x)
>> x1
x2
x3

借助 range() 和 len()

x_n = ["x1","x2","x3"]
for i in range(len(x_n)):
print(x_n[i])
>> x1
x2
x3

借助 enumerate()

enumerate() 是 python 的内置函数,表示枚举的意思,其处理的是可迭代或者可遍历对象(列表,字符串等),可以同时获得 值 和 其在对象中的索引号

x_n = ["x1","x2","x3"]
for i,x in enumerate(x_n):
print(i,x)
>> (0, 'x1')
(1, 'x2')
(2, 'x3')

借助 iter()

iter() 的参数必须是一个可迭代或者可遍历对象,这与enumerate() 一致,iter() 返回的是迭代器

x_n = ["x1","x2","x3"]
for x in iter(x_n):
print(x)
print(type(x_n))
print(type(iter(x_n)))
>> x1
x2
x3
>> <type 'list'>
>> <type 'listiterator'>

由于 iter() 可以构成迭代器对象的迭代器,其可以使用 next() 函数 来获取迭代器的下一条数据

x_n = ["x1","x2","x3"]
x_i = iter(x_n)
for x in range(len(x_n)):
print(next(x_i))
>> x1
x2
x3

简便版本(在 list 内部使用 for 循环)

简单嵌入

一行代码就可以实现循环功能

my_list = [表达式 for 循环项 in 循环体 ]

例子:

import math

x_n = "Hello World"
y_n = [1,2,3]
my_listx = [n for n in x_n]
my_listy = [math.pow(n,2) for n in y_n] # 调用math库的pow求幂
my_listy_1 = [pow(n,2) for n in y_n] # 调用python内置的pow求幂 print(my_listx)
print(my_listy)
print(my_listy_1) >> ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
>> [1.0, 4.0, 9.0]
>> [1, 4, 9]

tips: math库的 pow() 输入为 float 型,若输入为整型(int)则自动转换为 float,输出结果也为 float;python 内置的pow() 输入为整型,输出为整型,输入为float,输出也为float

加入条件

在循环中使用条件判断(在for循环的后面加或者前面加),以筛选出合适的数据

my_list = [表达式 for 循环项 in 循环体 if 条件]

或者有第二种形式:

my_list = [表达式1  if 条件 else 表达式2 for 循环项 in 循环体]

此时 if 必须要和 else 搭配,不然会报错;且当 if 条件为真, 结果为表达式1,否者结果为 表达式2

例子:

import math

x_n = ["Hello World", "No good", "Good thing"]
y_n = [1,2,3,4]
my_listx = [n for n in x_n if n.startswith("Hello")]
my_listy = [math.pow(n,2) for n in y_n if n > 1] print(my_listx)
print(my_listy) >> ['Hello World']
>> [4.0, 9.0, 16.0] -------------------------------------------
## 第二种形式 ##
import math x_n = ["Hello World", "No good", "Good thing"]
y_n = [1,2,3,4]
my_listx = [n if n.startswith("Hello") else "No print" for n in x_n]
my_listy = [math.pow(n,2) if n > 2 else math.pow(n,3) for n in y_n] print(my_listx)
print(my_listy) >> ['Hello World', 'No print', 'No print']
>> [1.0, 8.0, 9.0, 16.0]

嵌套循环

与普通的for循环类似,list中也可以嵌套for循环来达到目的

my_list = [表达式 for 循环项1 in 循环体 for 循环项 in 循环项1]

其中第一个循环为最外层循环,后面的循环为内层循环,最后表达式的结果和次数都是按照最后一个循环内来计算的

例子:

x_n = ["Hello", "World"]
my_listx = [n for name in x_n for n in name]
my_listy = [name for name in x_n for n in name] print(my_listx)
print(my_listy) >> ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']
>> ['Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'World', 'World', 'World', 'World', 'World']
--------------------------------
## 上面的和下面的一样的效果 ##
my_list1 = []
my_list2 = []
for name in x_n:
for n in name:
my_list1.append(n)
my_list2.append(name)
print(my_list1)
print(my_list2) >> ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']
>> ['Hello', 'Hello', 'Hello', 'Hello', 'Hello', 'World', 'World', 'World', 'World', 'World']

Python中使用 for 循环来拿遍历 List 的值的更多相关文章

  1. python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

  2. 利用Python中的for循环和while循环,打印各种方向的九九乘法表。

    哈喽大家好,今天,可乐来给大家分享一下Python中用for循环和while循环打印九九乘法表的操作.由于本人也是刚刚接触Python不长时间,代码也是自己编写的,所以有什么不足之处还请大家多多指教. ...

  3. Python 中当前位置以及目录文件遍历操作

    Python 中当前位置以及目录文件遍历操作 当前位置 print(os.path.dirname(__file__)) 其中 dirname 会选择目录(文件夹),"__file__&qu ...

  4. python中如何调用函数交换两个变量的值

    python中如何调用函数交换两个变量的值 所有代码来在python3.7.1版本实现 以下实例通过用户输入两个变量,并相互交换:  方法一: def swap(a,b): # 创建临时变量,并交换 ...

  5. 关于Python中的for循环控制语句

    #第一个:求 50 - 100 之间的质数 import mathfor i in range(50, 100 + 1):    for j in range(2, int(math.sqrt(i)) ...

  6. 你真的会python中的for循环吗

    for 循环是 Python 中的通用序列迭代器:它可以单步遍历任何有序序列中的元素.for 语句适用于字符串.列表.元组.其他内置可迭代对象和类创建的新对象. for 通常比 while 循环更容易 ...

  7. python中的while循环和for循环

    1.while循环 Gif 演示 Python while 语句执行过程 while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,bre ...

  8. python中subprocess.Popen执行命令并持续获取返回值

    先举一个Android查询连接设备的命令来看看Python中subprocess.Popen怎么样的写法.用到的命令为 adb devices. import subprocess order='ad ...

  9. JS中for...in循环陷阱及遍历数组的方式对比

    JavaScript中有很多遍历数组的方式,比较常见的是for(var i=0;i<arr.length;i++){},以及for...in...循环等,这些遍历都有各自的优缺点,下面来看看各种 ...

随机推荐

  1. 一个比 Nginx 功能更强大的 Web 服务器

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ Caddy 简介 Caddy 是一个 Go 编写的 Web 服务器,类似于 Nginx,Caddy 提供了更加强大的功能,随 ...

  2. 关于控制台报错“Cannot use import statement outside a module”问题的解决

    问题还原: 1.首先在main.js里 使用ES6语法import引入另外一个js模块. 2.此时将main.js在index.html中通过script标签引入,如下 3.右键通过vscode提供的 ...

  3. [数学基础] 4 欧几里得算法&扩展欧几里得算法

    欧几里得算法 欧几里得算法基于的性质: 若\(d|a, a|b\),则\(d|(ax+by)\) \((a,b)=(b,a~mod~b)\) 第二条性质证明: \(\because a~mod~b=a ...

  4. sqlalchemy模块介绍、单表操作、一对多表操作、多对多表操作、flask集成.

    今日内容概要 sqlalchemy介绍和快速使用 单表操作增删查改 一对多 多对多 flask集成 内容详细 1.sqlalchemy介绍和快速使用 # SQLAlchemy是一个基于 Python实 ...

  5. 一文详解 WebSocket 网络协议

    WebSocket 协议运行在TCP协议之上,与Http协议同属于应用层网络数据传输协议.WebSocket相比于Http协议最大的特点是:允许服务端主动向客户端推送数据(从而解决Http 1.1协议 ...

  6. JavaSE_关键字 接口 代码块 枚举

    1 Java中的关键字 1.1 static关键字 static特点 : 静态成员被所在类的所有对象共享 随着类的加载而加载 , 优先于对象存在 可以通过对象调用 , 也可以通过类名调用 , 建议使用 ...

  7. 贝塞尔曲线在Unity中的应用

    前言:国庆放假后基本整个人的散掉了.加之种种原因,没时间没心情写博客.最近研究了一下3d的一些效果.其中有类似翻书撕纸的操作,可是一个panel怎么由平整的变成弯曲的呢? 两点可以确定一条直线,三点可 ...

  8. “摆地摊“都找不到全栈工程师?JNPF帮你分分钟搞定!

    大街上捕捉野生程序员 都这样了还找不到全栈工程师 全栈工程师(Full-Stack Engineer)图鉴: 全栈工程师,也叫全端工程师(同时具备前端和后台能力),英文Full Stack  deve ...

  9. 搭建自己的个人web项目指南 ---(一)服务器购买与基础配置 | windows连接到自己的云服务器

    (一)服务器购买与基础配置 | windows连接到自己的云服务器 一.服务器选购指南 厂商选择 目前市面上提供服务器租用的厂商很多,比较知名的还是阿里云和腾讯云,两家的稳定性都非常不错,小伙伴们可以 ...

  10. CabloyJS 4.12震撼发布,及新版教程尝鲜

    引言 凡是可以用 JavaScript 来写的应用,最终都会用 JavaScript 来写 | Atwood 定律 目前市面上出现的大多数与 NodeJS 相关的框架,基本都将 NodeJS 定位在工 ...