美文网首页Python项目开发经验记录
[python实战开发] 循环读取列表,最后一种方法亮了

[python实战开发] 循环读取列表,最后一种方法亮了

作者: 佳瑞Jarrett | 来源:发表于2020-05-30 21:46 被阅读0次

    1 根据索引取列表中的元素

    在读取列表的时候,可以按照常规的方法一个一个从列表取数据,例如下面根据索引取列表中的元素方式。

    example_list = ['a', 'b', 'c', 'd']
    

    在这里新建一个最普通的列表,采用循环的方式顺序读取。

    for i in range(len(example_list)):
        result = example_list[i]
        print(result)
    

    该种方法读取列表源于列表的切片操作,list[start:end:step]。最终的输出是顺序打印列表的元素。

    a
    b
    c
    d
    

    取列表的某些片段

    range中添加一个参数,即如下所示,将取到列表中的第3个元素到最后的元素。

    for i in range(2, len(example_list)):
        result = example_list[i]
        print(result)
    

    最终的输出结果只有示例列表的最后两个元素。

    c
    d
    

    区分元素的位置取列表元素

    当我们需要根据索引的不同,做不同的操作时,可以在刚方法中添加判断,例如当i==0,i!=0等等情况。下面的示例代码将区分列表位置的奇偶数。

    for i in range(len(example_list)):
        result = example_list[i]
        if i%2:
            print('ever number:', result)
        else:
            print('odd number:', result)
    

    可以从结果中看到,偶数和奇数位置的元素已经被区分开来。

    odd number: a
    ever number: b
    odd number: c
    ever number: d
    

    2 精简的方法

    但是!但是!当我们只想简简单单取列表元素的时候,或者不想关心元素的位置的时候,完全可以采用更精简的方法来完成!这才是优雅的Python!

    for result in example_list:
        print(result)
    

    结果如下所示,结果中只有列表的元素。在结果中已经完全没有列表中元素索引信息。当列表中有重复元素的时候,已经很难在找到元素的所在位置,这也是该方法的短板。

    a
    b
    c
    d
    

    3 两者兼顾的方法

    当既想拥有第一种方法获取索引的便捷,又想拥有第二种的方法优雅的代码,那怎么办呢?
    那就采用如下的代码!使用enumerate(list),同时取列表的索引及元素。

    for i, result in enumerate(example_list):
        print(i)
        print(result)
    

    结果如下所示。

    0
    a
    1
    b
    2
    c
    3
    d
    
    

    所以enumerate(list)到底是什么方法?
    enumerate方法的语法是:enumerate(sequence, [start=0])其中sequence就是一个序列或者其他可以迭代的对象,start表示起始的序号,默认是0.

    print(list(enumerate(example_list)))
    

    将示例列表打印下来可以看到,可以将列表的位置和元素顺序读出。

    [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
    

    简单总结

    没有最好的方法,只有选择最合适的方法应用在项目才是最合适的方法。
    祝你编程快乐!

    参考文献

    菜鸟教程Python 列表(List)
    Python enumerate() 函数

    相关文章

      网友评论

        本文标题:[python实战开发] 循环读取列表,最后一种方法亮了

        本文链接:https://www.haomeiwen.com/subject/dsuyahtx.html