ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

关于Python集合的几点建议

来源:网络整理     时间:2016-04-09     关键词:python

本篇文章主要介绍了"关于Python集合的几点建议",主要涉及到python方面的内容,对于Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 1. 检测列表是否是空没必要去调用len方法去检测一个列表是否是空,因为空列表求值就是False的。if len(mylist):# Do something...

1. 检测列表是否是空

没必要去调用len方法去检测一个列表是否是空,因为空列表求值就是False的。

if len(mylist):
    # Do something with my listelse:
    # The list is empty

可以用下面的方法代替:

if mylist:
    # Do something with my listelse:
    # The list is empty

2. 在迭代列表的同时获取元素的索引值

有时候你需要在迭代一个列表的同时获取每个元素的索引值。通常的做法是:

i = 0
for element in mylist:
    # Do something with i and element    i += 1

更好的做法是:

for i, element in enumerate(mylist):
    # Do something with i and elementpass

3. 列表排序

创建一个persons列表:

class Person(object):
    def__init__(self, age):
        self.age = age

persons = [Person(age) for age in (14, 78, 42)]

如果我们想要根据age对列表进行排序,可以这么做:

def get_sort_key(element):
    return element.age

for element in sorted(persons, key=get_sort_key):
    print"Age:", element.age

 我们定义了一个函数,返回作为排序条件的属性。并且把这个函数作为参数传递给sorted函数。因为这种排序很常用,所以Python标准库已经包含了这样的函数。

from operator import attrgetter
# attrgetter是一个高阶函数,可以返回一个函数for element in sorted(persons, key=attrgetter('age')):
    print"Age:", element.age

这样做代码更易读。当你看到attrgetter函数的时候你就会知道它是用来获取一个属性的。operator模块中还有itemgetter和methodcaller方法,相信你一眼就能看出他们的作用。

以上就介绍了关于Python集合的几点建议,包括了python方面的内容,希望对Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_619044.html

相关图片

相关文章