一些Python知识点

0. 新与旧

两种reverse

>>> L = [1,2,3,4]
>>> R = L[::-1] # new object
>>> R
[4, 3, 2, 1]
>>> L.reverse() # in place
>>> L
[4, 3, 2, 1]
>>>

两种sort

>>> sorted(r) # new object
[’black’, ’blue’, ’green’, ’red’, ’white’]
>>> r
[’white’, ’black’, ’green’, ’blue’, ’red’]
>>> r. sort() # in-place
>>> r
[’black’, ’blue’, ’green’, ’red’, ’white’]

1. 函数参数

def f(a, b, c=0, *argc, **kw):  print a, b, c, argc, kw

>>> f(1, 2, 3, ‘a‘, ‘b‘, ‘c‘, key=‘value‘)
1 2 3 (‘a‘, ‘b‘, ‘c‘) {‘key‘: ‘value‘}

a, b为必选参数,c默认参数,argc可变参数,kw为关键字参数。传入函数时,argc是一个tuple,kw为dict。

注意默认参数,一定要指向不可变变量。否者多个函数的同一参数可能指向同一个instance

>>> def foo(bar=[]):
...    bar.append("baz")
...    return bar
>>> foo()
["baz"]
>>> foo()
["baz", "baz"]
>>> foo()
["baz", "baz", "baz"]

>>> def foo(bar=None):
...    if bar is None:        # or if not bar:
...        bar = []
...    bar.append("baz")
...    return bar
...
>>> foo()
["baz"]
>>> foo()
["baz"]
>>> foo()
["baz"]

2. 迭代

  • 判断是否可迭代,使用Iterable
>>> from collections import Iterable
>>> isinstance(‘string‘, Iterable)
True
>>> isinstance([1,2,3], Iterable)
True
>>> isinstance(123, Iterable)
False
  • 引入下标,可用enumerate
>>> for i, v in enumerate([‘a‘, ‘b‘, ‘c‘]):
...     print i, v
...
0 a
1 b
2 c
>>>
  • 同时迭代多个list,使用函数zip
>>> for i, j in zip([1,2,3], [‘a‘, ‘b‘, ‘c‘]):
...     print i, j
...
1 a
2 b
3 c

3. List Comprehension中的if-else

>>> L = [‘We‘, ‘are‘, 42, ‘ALONE‘, ‘!‘]
>>> [s.lower() if isinstance(s,str) else s for s in L]
[‘we‘, ‘are‘, 42, ‘alone‘, ‘!‘]

4. class

http://www.toptal.com/python/python-class-attributes-an-overly-thorough-guide

限定class的成员

__slots__

>>> class Student(object):
...     __slots__ = (‘name‘, ‘age‘)
...

5. exception


检查多个异常,需要放在tuple内

>>> try:
...     l = ["a", "b"]
...     int(l[2])
... except (ValueError, IndexError) as e:
...     pass
...
>>>
时间: 2024-10-12 02:50:34

一些Python知识点的相关文章

python知识点 2014-07-09

迭代协议: 类实现方法__next__,则可以使用for.while来实现迭代 使用iter或者next实现手工迭代: L = [1,2,3] I = iter(L) print(I.next()) 列表推导式: L = [x + y for x in 'abc' for y in 'lmn'] print(L) ['al', 'am', 'an', 'bl', 'bm', 'bn', 'cl', 'cm', 'cn'] python知识点 2014-07-09,布布扣,bubuko.com

Python知识点:distutils常用子模块

from distutils.core import setup, Extension, Commandfrom distutils.command.build import buildfrom distutils.command.clean import cleanfrom distutils.command.sdist import sdistfrom distutils.dir_util import remove_treefrom distutils.util import get_pl

python知识点(07-08)

python: 循环else: while true: if x>1: print() break else: print() 文件循环: for line in open(‘test.txt’): print(line,end=’’) 获得enumerate: S=’spam‘ for( offset, item) in enumrate(S): print(item, ‘appear is’, offset) 备注: zip函数,使用for循环并行使用多个序列 python知识点(07-08

Python知识点: os.popen

用例:f = os.popen("%s %s %s" % ("pkg-config", " ".join(args), mod)) popen(...)    popen(command [, mode='r' [, bufsize]]) -> pipe        Open a pipe to/from a command returning a file object. Python知识点: os.popen

【Python&知识点】2个列表合成一个字典

·放一些网上的链接:https://baijiahao.baidu.com/s?id=1617397248551208688&wfr=spider&for=pc python,2列表组合成一个字典list_1 = [1,2,3,4,5,6] list_2 = ['a','b','c','d','e','f'] 方法一:dict(map(lambda x,y:[x,y],list_1,list_2)) 方法二:dict(zip(list_1,list_2)) 最简便!!! 输出:{1: 'a

计算机二级python 知识点篇(函数与代码复用)

计算机二级python 知识点篇(函数与代码复用) 全局变量 全局变量指在函数之外定义的变量, 在程序执行全过程有效. 全部变量在函数内部使用时, 需要提前使用保留字global声明, 语法形式如下: global <全局变量> >>>n = 2 #n是全局变量 >>>def multiply(x, y = 10): global n return x*y*n # 使用全局变量n >>>s = multiply(99, 2) >>

计算机二级python 知识点篇(文件和数据格式化)

计算机二级python 知识点篇(文件和数据格式化) 考纲考点 文件的使用: 文件打开. 关闭和读写 数据组织的维度: 一维数据和二维数据 一维数据的处理: 表示. 存储和处理 二维数据的处理: 表示. 存储和处理 采用CSV格式对一二维数据文件的读写 知识点1 文件包括两种类型: 文本文件和二进制文件. 二进制文件和文本文件最主要的区别在于是否有统一的字符编码 文本文件一般由单一特定编码的字符组成, 如UTF-8编码, 内容容易统一展示和阅读. 二进制文件直接由比特0和比特1组成, 文件内部数

计算机二级python 知识点篇(组合数据类型)

计算机二级python 知识点篇(组合数据类型) 集合.列表.字符串.元组.字典 集合类型 : 集合 (无序.无相同元素) 序列类型 :列表.字符串.元组 (有序.元素之间不排他) 映射类型 :字典 集合 集合概述 集合中元素不可重复, 元素类型只能是固定数据类型,例如: 整数. 浮点数. 字符串. 元组等, 列表. 字典和集合类型本身都是可变数据类型, 不能作为集合的元素出现 >>>S = {1010, "1010", 78.9} >>>type(

Python知识点总结1--函数

最近准备自己学学Python,给自己充充电,这些都是本人整理的一些Python的基本知识点,会持续更新的,希望能和大家一同交流 一.内建函数 cmp(obj1,obj2) repr(obj)            #返回一个对象的字符串表示   其实相当于 ' ' str(obj)     #同上 type(obj)     #返回对象的相应类型 x**y  与 pow(x,y)都表示x的y次方 二.类型工厂函数 int() long() float() complex() str() unic

python知识点总结以及15道题的解析

先看知识点总结 一.序列操作符x in s 如果x是列表s的元素,返回True,否则Falses + t 连接两个序列s和ts*n或者n*s 将序列s复制n次s[i] 返回s中第i元素s[i:j]或s[i:j: k] 切片,返回序列s中第i到j-1以k为步长的元素子序列12345函数len(s) 返回序列的长度min(s) 返回序列的最小值max(s) 返回序列的最大值s.index或s.Index(x,i,j) 索引从i到j-1中第一次出现x的位置s.count(x) 返回x在s中出现的次数l