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')]
简单总结
没有最好的方法,只有选择最合适的方法应用在项目才是最合适的方法。
祝你编程快乐!
网友评论