Python 技巧

一、%r:可替代 %s、%d 等

>>> s = 'abc'
>>> i = 1
>>> '%r is %r' % (s, i)
"'abc' is 1"
>>> '%r is %r' % (i, s)
"1 is 'abc'"

二、元組拆包

  • 元組在Python中的作用:不可變的列表;無名稱的字段的記錄
  • 任何可迭代元素均可使用元組拆包
  • 用途
    1. 平行賦值
    2. *tuple 作爲函數參數
>>> from math import hypot
>>> data = (3,4)
>>> hypot(*data)
5.0
  1. 函數以元組形式返回多個值
  2. _佔位符,*處理剩餘元素(可爲空)

三、namedtuple

  • 構建有名字的類
  • 構建帶字段名的元組
>>> from collections import namedtuple
>>> People = namedtuple('People', 'name sex age')
>>> man = People('wang', 'man', 15)
>>> man
People(name='wang', sex='man', age=15)
>>> man.name
'wang'
# 三個常用的屬性、方法:_fields、_make()、_asdict()
>>> data = ('lin', 'woman', 22)
>>> woman = People._make(data)  # 使用元組快速構建
>>> woman
People(name='lin', sex='woman', age=22)
>>> woman._asdict()  # 以一種友好的方式輸出
OrderedDict([('name', 'lin'), ('sex', 'woman'), ('age', 22)]) 
>>> woman._fields
('name', 'sex', 'age') # 顯示People的所有屬性

四、字典推導

In [8]: codes = [(86, "China"),
   ...: (91, 'India'),
   ...: (1, 'United States'),
   ...: (62, 'Indonestia'),
   ...: (81, 'Japan')
   ...: ]

In [9]: country_code = {country: code for code,country in codes}

In [10]: country_code
Out[10]: {'China': 86, 'India': 91, 'Indonestia': 62, 'Japan': 81, 'United State
s': 1}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章