美文网首页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