[关闭]
@songying 2018-07-09T14:57:55.000000Z 字数 1056 阅读 1166

Pythonic 级别的代码

python高级特性


链式比较

  1. age = 18
  2. if age > 18 and age < 60:
  3. print("young man")
  1. if 18 < age < 60:
  2. print("young man")

三目运算

  1. if gender == "male":
  2. text = "男"
  3. else:
  4. text = "女"
  1. text = "男" if gender == "male" else "女"

列表推导式

真值判断

没必要显式的将对象与True和False比较。

  1. if attr == True:
  2. do_something()
  3. if len(value) != 0:
  4. do_something()
  1. if attr:
  2. do_something()
  3. if value:
  4. do_something()
类型 False True
布尔 False、 True
字符串 ""(空字符串) 非空字符串
数值 0, 0.0 非0 数值
容器 [], (), {}, set() 至少有一个元素的容器对象
None None 非None对象

for/else语句

for...else...的else部分用来处理没有从for循环中断的情况。有了它,我们不用设置状态变量来检查是否for循环有break出来,简单方便.
在for循环完整完成后才执行else;如果中途从break跳出,则连else一起跳出。

  1. for x in xrange(1,5):
  2. if x == 5:
  3. print 'find 5'
  4. break
  5. else:
  6. print 'can not find 5!'

字符串格式化

列表切片

善用生成器

获取字典元素

预设字典默认值

  1. dict = {'name':'Tim'}
  2. dict['work'] = dict.get('work', 0) + 1

字典推导式

字符串反转

  1. reverse_str = str[::-1] # 字符串反转
  2. input == input[::-1] # 检测回文

字符串列表连接

  1. str_list = ["python", "is", "good"]
  2. str_res = ' '.join(str_list)
  1. str_res = ''
  2. for s in str_list:
  3. str_res += s + ' '

使用zip()创建键值对

  1. keys = ['key1', 'key2']
  2. values = ['value1', 'value2']
  3. dic = dict(zip(keys, values))

使用enumerate()创建带索引序列

  1. result = {token: i for i, token in enumerate(word)}
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注