Python Note 200 - List

列表推导(过滤) 以过滤偶数为例,一般方法: numbers = [1,2,3,4,5,6] even = [] for number in numbers: if number%2 == 0: even.append(number) 推导方式过滤: numbers = [1,2,3,4,5,6] even = [number for number in numbers if number%2 == 0] 倒序列表 >>> lst = [1, 2, 3, 4, 5] >>> lst.reverse() >>> lst [5, 4, 3, 2, 1] >>> a = [1,2,3] >>> a[::-1] [3, 2, 1] >>> lst = [1, 2, 3, 4, 5] >>> list(reversed(lst)) [5, 4, 3, 2, 1] 判断一个列表是否为空 if mylist: # Do something with my list else: # The list is empty 排序 列表排序有两种方式,一种是列表自带的方式 sort,一种是内建函数 sorted 。 复杂的数据类型可通过指定 key 参数进行排序。 由字典构成的列表,根据字典元素中的 age 字段进行排序:...

February 13, 2017 · 3 min · Me

Python Note 300 - Dict

字典推导 和列表推导类似,字典同样可以推导: teams = ["Packers", "49ers", "Ravens", "Patriots"] print {key: value for value, key in enumerate(teams)} >>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0} 从字典中获取元素 使用字典的 get 方法可以安全的获得字典的值,第二个参数是缺省值: data = {'user': 1, 'name': 'Max', 'three': 4} is_admin = data.get('admin', False) 在 Dictionary 中元素分组 和上面类似,先创建 Persons: class Person(object): def __init__(self, age): self.age = age persons = [Person(age) for age in (78, 14, 78, 42, 14)] 如果现在我们要按照年龄分组的话,一种方法是使用 in 操作符: persons_by_age = {} for person in persons: age = person....

February 13, 2017 · 1 min · Me

Python Note 400 - String

capitalize() 首字符大写 center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字串 count(str, beg=0, end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 decode(encoding=‘UTF-8’, errors=‘strict’) 以 encoding 指定的编码格式解码string ,如果出错默认报一个 ValueError 的异常 ,除非 errors 指定的是 ‘ignore’ 或者 ‘replace’ encode(encoding=‘UTF-8’, errors=‘strict’) 以 encoding 指定的编码格式编码string,如果出错默认报一个 ValueError 的异常,除非 errors 指定的是 ‘ignore’ 或者 ‘replace’ endswith(obj, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束 ,如果是,返回 True ,否则返回 False. expandtabs(tabsize=8) 把字符串string中的tab符号转为空格,默认的空格数tabsize是 8. find(str, beg=0, end=len(string)) 检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内 ,如果是返回开始的索引值,否则返回-1 index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在 string中会报一个异常....

February 13, 2017 · 2 min · Me

Python Note 500 - Datetime

Python 标准库中的 datetime 模块提供了各种对日期和时间的处理方法。 基本操作 In [1]: import datetime In [2]: now = datetime.datetime.now() In [3]: now Out[3]: datetime.datetime(2015, 6, 1, 10, 26, 38, 836099) 时间转换为字符串 In [4]: now.strftime("%Y-%m-%d %H:%M:%S") Out[4]: '2015-06-01 10:26:38' In [5]: now.replace(hour=0,minute=0,second=0) Out[5]: datetime.datetime(2015, 6, 1, 0, 0, 0, 836099) In [6]: now - datetime.timedelta(days=1) Out[6]: datetime.datetime(2015, 5, 31, 10, 26, 38, 836099) 字符串转换为时间 In [7]: str = 'Fri, 19 May 2017 10:50:42' In [8]: datetime.datetime.strptime(str, '%a, %d %b %Y %H:%M:%S') Out[8]: datetime....

February 13, 2017 · 2 min · Me

Python Note 600 - Functional Programming

lambda lambda 语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。 lambda 语句构建是一个函数对象: In [1]: f = lambda x: x * 2 In [2]: f(8) Out[2]: 16 In [3]: f Out[3]: <function __main__.<lambda>> filter filter(function or None, sequence) -> list, tuple, or string 返回序列中 function(item) 为 true 的项目。如果 fuction 为 None ,那么就返回 测试结果为 true 的项目。如果序列的类型为 tuple 或者 string ,那么返回相同的 类型;其他的则返回 list: In [4]: foo = [2, 18, 9, 22, 17, 24, 8, 12, 27] In [5]: filter(lambda x: x % 3 == 0, foo) Out[5]: [18, 9, 24, 12, 27] map map(function, sequence[, sequence, …]) -> list...

February 13, 2017 · 2 min · Me