Python中使用 for 循环来拿遍历 List 的值

常规版本

简单的 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()

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'>
</type></type>

由于 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 = [&#x8868;&#x8FBE;&#x5F0F; for &#x5FAA;&#x73AF;&#x9879; in &#x5FAA;&#x73AF;&#x4F53; ]

例子:

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]     # &#x8C03;&#x7528;math&#x5E93;&#x7684;pow&#x6C42;&#x5E42;
my_listy_1 = [pow(n,2) for n in y_n]        # &#x8C03;&#x7528;python&#x5185;&#x7F6E;&#x7684;pow&#x6C42;&#x5E42;

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 = [&#x8868;&#x8FBE;&#x5F0F; for &#x5FAA;&#x73AF;&#x9879; in &#x5FAA;&#x73AF;&#x4F53; if &#x6761;&#x4EF6;]

或者有第二种形式:

my_list = [&#x8868;&#x8FBE;&#x5F0F;1  if &#x6761;&#x4EF6; else &#x8868;&#x8FBE;&#x5F0F;2 for &#x5FAA;&#x73AF;&#x9879; in &#x5FAA;&#x73AF;&#x4F53;]

此时 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]

## &#x4E0A;&#x9762;&#x7684;&#x548C;&#x4E0B;&#x9762;&#x7684;&#x4E00;&#x6837;&#x7684;&#x6548;&#x679C; ##
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']

Original: https://www.cnblogs.com/jack-nie-23/p/16482882.html
Author: jacknie23
Title: Python中使用 for 循环来拿遍历 List 的值

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582390/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 014 Linux 线上高频使用以及面试高频问题——如何查找大文件并安全的清除?

    1 案例描述? 2 命令一(目录统计排序最佳命令) 3 命令二(最实用,目录和文件一起统计排序) (1)命令详情和说明 (2)du、head、sort、awk 详细说明参考已有文章…

    Linux 2023年5月27日
    076
  • Linux ARMv7架构通用中断流程(1)【转】

    一、ARMv7 Cortex-A系列处理器寄存器组介绍及其功能介绍 1. ARMv7 Cortex-A处理器一般共有37寄存器,其中包括: (1) 31个通用寄存器,包括PC(程序…

    Linux 2023年6月8日
    068
  • Ansible—Inventory主机清单

    含义 清查;存货清单;财产目录;主机清单 1、增加主机组 &#x5B98;&#x65B9;&#x94FE;&#x63A5; http://docs….

    Linux 2023年6月6日
    094
  • ASP.NET Core 2.2 : 二十二. 多样性的配置方式

    大多数应用都离不开配置,本章将介绍ASP.NET Core中常见的几种配置方式及系统内部实现的机制。(ASP.NET Core 系列目录) 说到配置,第一印象可能就是”…

    Linux 2023年6月7日
    096
  • rocksdb列族笔记

    1、简介 列族(Column Families)是rocksdb3.0提出的一个机制,用于对同一个数据库的记录(键值对)进行逻辑划分。默认情况下所有的记录都会存储在一个默认列族里(…

    Linux 2023年6月7日
    094
  • 卡尔曼滤波(Kalman filter)(不完全介绍)

    1. Kalman filter基本介绍 卡尔曼滤波(Kalman filter)是一种高效的自回归滤波器,它能在存在诸多不确定性情况的组合信息中估计动态系统的状态,是一种强大的、…

    Linux 2023年6月14日
    096
  • docker search和pull超时

    练习时用docker查找镜像或者pull镜像时总是超时,折腾一圈发现是 时钟同步的问题,实验环境的时间偏差太大,重新同步一次就ok了。 #ntpdate cn.pool.ntp.o…

    Linux 2023年6月14日
    068
  • 【java课设+源代码+注释+文档】文件加密

    项目文档见我上传的资源 点击这里下载资源 package xyz.slienceme; /* * To change this license header, choose Lic…

    Linux 2023年6月8日
    0131
  • 项目经验示例

    一,期中项目经验示例 1,根据现有结构部署工具(PXE+kickstart)2,结合应用系统需求定制部署模版3,制作系统优化等一键执行脚本4,自动化部署实施5,根据定制的优化内容对…

    Linux 2023年6月7日
    077
  • 软件基础的理论(1)

    软件基础的理论 一, 什么是软件产品 它是一个逻辑产品,没有实体,包括程序,文档和数据,需要通过终端设备才能体现出来功能和作用 二, 软件产品的中间过程文档 客户需求 &#…

    Linux 2023年6月7日
    077
  • [非原创]2048游戏自动化算法

    function AI(grid) { this.grid = grid; } // static evaluation function AI.prototype.eval = …

    Linux 2023年6月13日
    084
  • shell运算符

    算术运算符 下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20: 运算符说明举例 + 加法 expr $a + $b 结果为 30。 – 减法 ex…

    Linux 2023年5月27日
    064
  • python操作MySQL;MySQL补充知识

    目录 1.python操作MySQL 2.SQL注入及解决方式 3.二次确认 4.修改表SQL语句补充 5.视图 6.触发器 7.事务 8.存储过程 9.函数 10.流程控制 11…

    Linux 2023年6月7日
    086
  • 使用ipmitool配置ipmi(远程控制卡)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    082
  • php发送邮件 (phpmailer)

    1.首先下载phpMailer文件官方文件https://sourceforge.net/projects/phpmailer/; 还有class.smtp.php. 2.去配置一…

    Linux 2023年6月14日
    067
  • redis开启远程访问

    redis默认只允许本地访问,要使redis可以远程访问可以修改redis.conf 打开redis.conf文件在 NETWORK部分有说明 By default, if no …

    Linux 2023年5月28日
    0135
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球