python中的for循环以及枚举函数enumerate()

一、可迭代的对象(iteratle_object)

python中可以使用for循环进行迭代的对象大致有以下几种类型:

  1. String(字符串)
  2. List(列表)
  3. Tuple(元组)
  4. Dictionary(字典)
  5. range()内置函数返回的对象
二、for循环迭代示例
1. 依次输出字符串"python"的字符
def print_string():
    string = "python"
    for s in string:
        print(s)

在这里插入图片描述

2. 依次输出列表中的元素
def print_list():
    list = ['a', 'b', 'c', 'd']
    for l in list:
        print(l)

在这里插入图片描述

3. 依次输出元组中的元素
def print_tuple():
    tuple = ('e', 'f', 'g', 'h')
    for t in tuple:
        print(t)

在这里插入图片描述

4. 依次输出字典中的元素
def print_dict():
    dict = {'Name': 'Tom', 'Age': 18, 'Sex': '男', 'Address': '深圳'}
    print('============= 方法1:通过迭代key,获取value ==============')
    for key in dict:
        print(key, ':', dict[key])

    print('============= 方法2:通过字典中自带keys()方法获取所有的key ==============')
    for key in dict.keys():
        print(key)

    print('============= 方法3:通过字典中自带values()方法获取所有的value ==============')
    for value in dict.values():
        print(value)

    print('============= 方法4: 遍历字典项 ==============')
    for item in dict.items():
        print(item)

    print('============= 方法5: 通过字典项遍历key和value ==============')
    for key, value in dict.items():
        print(key, ":", value)

在这里插入图片描述

5. 依次遍历range() 对象
def print_range():
    for i in range(5):
        print(i)

在这里插入图片描述

三、枚举函数enumerate()

enumerate(sequence, [start=0]):主要用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。

  • sequence – 一个序列、迭代器或其他支持迭代对象。
  • start – 下标起始位置的值,默认从0开始。

(1)与普通for循环相比,使用enumerate()函数的for循环能更简便地访问到索引和对应的元素。

def print_enumerate():
    ls = ['a', 'b', 'c']

    print('============= 方法1: ==============')
    for i in range(len(ls)):
        print(i, ls[i])

    print('============= 方法2: ==============')
    for s in ls:
        print(ls.index(s), s)

    print('============= 方法3: ==============')
    for i, element in enumerate(ls):
        print(i, element)

    print('============= 方法4: ==============')
    for i, element in enumerate(ls, start=10):
        print(i, element)

在这里插入图片描述
(2)统计文件行数

# 这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。
count=len(open(filepath,'r').readlines())

# 可以利用enumerate()
count=0
for index,line in enumerate(open(filepath,'r')):
    count+=1
四、列表推导式

列表推导式提供了一个更简单的创建列表的方法。常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列。列表推导式的结构是由一对方括号所包含的以下内容:一个表达式,后面跟一个 for 子句,然后是零个或多个 for 或 if 子句。 其结果将是一个新列表,由对表达式依据后面的 for 和 if 子句的内容进行求值计算而得出。

# 列表推导式
def print_ls():
    squares = [x ** 2 for x in range(10)]
    # 等价于
    # squares = []
    # for x in range(10):
    #     squares.append(x ** 2)
    print(squares)


def print_ls1():
    ls = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
    # 等价于
    # ls = []
    # for x in (1, 2, 3):
    #     for y in (2, 3, 4):
    #         if x != y:
    #             ls.append((x, y))
    print(ls)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python枚举函数enumerate()是一个内置函数,它将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,并同时列出数据和数据下标,通常用在for循环。该函数返回一个enumerate对象,是一个可迭代对象,通过遍历可以获取具体的元素值。它的语法为:enumerate(iterable, start),其iterable是可遍历的对象,start是索引的起始值,默认为0。使用enumerate函数可以在for循环同时获取索引和值。 这个函数在字典上也可以使用,表示枚举或列举的意思,用于获取字典的键和值。对于一个可迭代的对象,可以使用enumerate函数将其组合为一个索引序列,从而在for循环获得计数的效果。 一个例子是可以利用enumerate()函数和for循环来遍历文件的每一行,并同时获得行号和行内容。例如,可以使用以下代码来读取一个文件,并在遍历每一行的同时记录行号: count = 0 for index, line in enumerate(open(filepath,'r')): count += 1 这样就可以在count变量获得文件的行数,index变量获得行号,line变量获得每一行的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python 使用enumerate()函数详解](https://blog.csdn.net/jh035/article/details/128077895)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python enumerate用法总结](https://blog.csdn.net/churximi/article/details/51648388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值