Differences between revisions 6 and 17 (spanning 11 versions)
Revision 6 as of 2008-08-26 13:58:53
Size: 2639
Editor: lizzie
Comment:
Revision 17 as of 2009-12-25 07:15:54
Size: 4535
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
##OBP项目图书reST通用文章模板
###for
mat rst
||status|| 草稿 ||清风; 100%||
#pragma section-numbers off
||status|| 草稿 ||清风 & liz; 100%||
Line 6: Line 5:
[[TableOfContents]] <<TableOfContents>>
Line 8: Line 7:
##startInc
= PCS205 内建函式(enumerate) =
Line 9: Line 10:
Python除了语言简洁,容易上手等优点,还有一个重要的优点,就是存在大量的内置函,方便编程.这个章节将介绍这些常用函数.更好的了解Python的诱人之处. Python除了语言简洁,容易上手等优点,还有一个重要的优点,就是存在大量的内置函,方便编程.这个章节将介绍这些常用函式,我们更好的了解Python的诱人之处.
Line 13: Line 14:
enumerate是python 2.3中新增的内置函数,它的英文说明为 enumerate是Python 2.3中新增的内置函式,它的英文说明为:
Line 18: Line 19:

它特别适合用于一个for循环时当我们同时需要计数和元素时可以使用这个函数。举个简单的例子,有一个字符串数组需要一行一行打印出来同时每行前面加上计数从1开始

例如
:
它特别适合用于一个for循环时,当我们同时需要计数和元素时可以使用这个函式.
比如,
有一个字符串数组,需要一行一行打印出来,同时每行前面加上计数,从1开始:
Line 26: Line 25:
}}} }}}输出结果为:
Line 28: Line 27:
0,a
1,b
2,c
0 a
1 b
2 c
Line 34: Line 33:
说明:map(function, sequence[, sequence, ...]) -> list两个参数一个是函另一个是列表或元组返回一个列表
例子:将数组中每一个数乘以2
说明:map(function, sequence[, sequence, ...]) -> list,两个参数一个是函,另一个是列表或元组,返回一个列表.
比如,将数组中每一个数乘以2:
Line 38: Line 37:
}}} }}}输出结果为:
Line 44: Line 43:
说明:zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]可以同时循环两个一样长的数组返回一个包含每个参数元组对应元素的元组各参数元组长度最好一致若不一致采取截断使得返回的结果元组的长度为各参数元组长度最小的 说明:zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)],可以同时循环两个一样长的数组,返回一个包含每个参数元组对应元素的元组.各参数元组长度最好一致,若不一致,采取截断使得返回的结果元组的长度为各参数元组长度最小的.
比如:
Line 49: Line 49:
}}} }}}输出结果为:
Line 58: Line 58:
说明: filter(function or None, sequence) -> list, tuple, or string,包括两个参数,分别是function和list。该函根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新列表
例子:过滤掉数组中小于3的数
说明: filter(function or None, sequence) -> list, tuple, or string,包括两个参数,分别是function和list。该函根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新列表.
比如,过滤掉数组中小于3的数:
Line 62: Line 62:
}}} }}}输出结果为:
Line 67: Line 67:
-- 清风 [[DateTime(2008-04-25T14:33:00Z)]]
=== dir ===
函式说明:列出一个变量所有方法和属性

动态语言经常遇到的问题就是,当前的变量究竟有哪些可用的方法和属性?通过dir()函式就可以很容易的解决了:
{{{#!python
s="Hello Python"
print dir(s)
}}}
运行结果:
{{{
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__str__', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
}}}


=== range ===
函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个数字序列

range示例:
{{{#!python
>>> range(5)
[0, 1, 2, 3, 4]
>>> range(1,5)
[1, 2, 3, 4]
>>> range(0,6,2)
[0, 2, 4]
}}}


=== xrange ===
函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器(http://www.python.org/dev/peps/pep-0255/).

xrange示例:
{{{#!python
>>> xrange(5)
xrange(5)
>>> list(xrange(5))
[0, 1, 2, 3, 4]
>>> xrange(1,5)
xrange(1, 5)
>>> list(xrange(1,5))
[1, 2, 3, 4]
>>> xrange(0,6,2)
xrange(0, 6, 2)
>>> list(xrange(0,6,2))
[0, 2, 4]
}}}
由上面的示例可以知道,要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间.

##endInc

status

草稿

清风 & liz; 100%

PCS205 内建函式(enumerate)

概述

Python除了语言简洁,容易上手等优点,还有一个重要的优点,就是存在大量的内置函式,方便编程.这个章节将介绍这些常用函式,让我们更好的了解Python的诱人之处.

使用

enumerate

enumerate是Python 2.3中新增的内置函式,它的英文说明为:

enumerate(iterable)
    Return an enumerate object. iterable must be a sequence, an iterator, or some other object which supports iteration. The next() method of the iterator returned by enumerate() returns a tuple containing a count (from zero) and the corresponding value obtained from iterating over iterable. enumerate() is useful for obtaining an indexed series: (0, seq[0]), (1, seq[1]), (2, seq[2]), .... New in version 2.3. 

它特别适合用于一个for循环时,当我们同时需要计数和元素时可以使用这个函式. 比如,有一个字符串数组,需要一行一行打印出来,同时每行前面加上计数,从1开始:

   1 mylist=["a","b","c"]
   2 for index,obj in enumerate(mylist):
   3     print index,obj

输出结果为:

0 a
1 b
2 c

map

函式说明:map(function, sequence[, sequence, ...]) -> list,两个参数一个是函式名,另一个是列表或元组,返回一个列表. 比如,将数组中每一个数乘以2:

   1 print "map(lambda x:x*2,[1,2,3,4,5]) -> ",map(lambda x:x*2,[1,2,3,4,5])

输出结果为:

map(lambda x:x*2,[1,2,3,4,5]) ->  [2, 4, 6, 8, 10]

zip

函式说明:zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)],可以同时循环两个一样长的数组,返回一个包含每个参数元组对应元素的元组.各参数元组长度最好一致,若不一致,采取截断使得返回的结果元组的长度为各参数元组长度最小的. 比如:

   1 print "zip([1,2,3],[4,5,6]):"
   2 for x,y in zip([1,2,3],[4,5,6]):
   3     print "x,y",x,y

输出结果为:

zip([1,2,3],[4,5,6]):
x,y 1 4
x,y 2 5
x,y 3 6

filter

函式说明: filter(function or None, sequence) -> list, tuple, or string,包括两个参数,分别是function和list。该函式根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新列表. 比如,过滤掉数组中小于3的数:

   1 print "filter(lambda x:x>3,[1,2,3,4,5]) -> ",filter(lambda x:x>3,[1,2,3,4,5])

输出结果为:

filter(lambda x:x>3,[1,2,3,4,5]) ->  [4, 5]

dir

函式说明:列出一个变量所有方法和属性

动态语言经常遇到的问题就是,当前的变量究竟有哪些可用的方法和属性?通过dir()函式就可以很容易的解决了:

   1 s="Hello Python"
   2 print dir(s)

运行结果:

['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__str__', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

range

函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个数字序列

range示例:

   1 >>> range(5)
   2 [0, 1, 2, 3, 4]
   3 >>> range(1,5)
   4 [1, 2, 3, 4]
   5 >>> range(0,6,2)
   6 [0, 2, 4]

xrange

函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器(http://www.python.org/dev/peps/pep-0255/).

xrange示例:

   1 >>> xrange(5)
   2 xrange(5)
   3 >>> list(xrange(5))
   4 [0, 1, 2, 3, 4]
   5 >>> xrange(1,5)
   6 xrange(1, 5)
   7 >>> list(xrange(1,5))
   8 [1, 2, 3, 4]
   9 >>> xrange(0,6,2)
  10 xrange(0, 6, 2)
  11 >>> list(xrange(0,6,2))
  12 [0, 2, 4]

由上面的示例可以知道,要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间.

ObpLovelyPython/PCS205 (last edited 2009-12-25 07:15:54 by localhost)