Python高手之路【二】python基本数据类型
一:数字 int
int(整型):
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型):
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大
注意:自从python2.2起,如果整数发生溢出,python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了
float(浮点型):
浮点数用来处理实数,即带有小数的数字,类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下一位表示符号
class int(object):<br/>
"""<br/>
int(x=0) -> int or long<br/>
int(x, base=10) -> int or long
Convert a number or string to an integer, or return 0 if no arguments<br/>
are given. If x is floating point, the conversion truncates towards zero.<br/>
If x is outside the integer range, the function returns a long instead.
If x is not a number or if base is given, then x must be a string or<br/>
Unicode object representing an integer literal in the given base. The<br/>
literal can be preceded by '+' or '-' and be surrounded by whitespace.<br/>
The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to<br/>
interpret the base from the string as an integer literal.<br/>
>>> int('0b100', base=0)<br/>
"""<br/>
def bit_length(self):<br/>
""" 返回表示该数字的时占用的最少位数 """<br/>
"""<br/>
int.bit_length() -> int
Number of bits necessary to represent self in binary.<br/>
>>> bin(37)<br/>
'0b100101'<br/>
>>> (37).bit_length()<br/>
"""<br/>
return 0
def conjugate(self, *args, **kwargs): # real signature unknown<br/>
""" 返回该复数的共轭复数 """<br/>
""" Returns self, the complex conjugate of any int. """<br/>
pass
def __abs__(self):<br/>
""" 返回绝对值 """<br/>
""" x.__abs__() <==> abs(x) """<br/>
pass
def __add__(self, y):<br/>
""" x.__add__(y) <==> x+y """<br/>
pass
def __and__(self, y):<br/>
""" x.__and__(y) <==> x&y """<br/>
pass
def __cmp__(self, y):<br/>
""" 比较两个数大小 """<br/>
""" x.__cmp__(y) <==> cmp(x,y) """<br/>
pass
def __coerce__(self, y):<br/>
""" 强制生成一个元组 """<br/>
""" x.__coerce__(y) <==> coerce(x, y) """<br/>
pass
def __divmod__(self, y):<br/>
""" 相除,得到商和余数组成的元组 """<br/>
""" x.__divmod__(y) <==> divmod(x, y) """<br/>
pass
def __div__(self, y):<br/>
""" x.__div__(y) <==> x/y """<br/>
pass
def __float__(self):<br/>
""" 转换为浮点类型 """<br/>
""" x.__float__() <==> float(x) """<br/>
pass
def __floordiv__(self, y):<br/>
""" x.__floordiv__(y) <==> x//y """<br/>
pass
def __format__(self, *args, **kwargs): # real signature unknown<br/>
pass
def __getattribute__(self, name):<br/>
""" x.__getattribute__('name') <==> x.name """<br/>
pass
def __getnewargs__(self, *args, **kwargs): # real signature unknown<br/>
""" 内部调用 __new__方法或创建对象时传入参数使用 """<br/>
pass
def __hash__(self):<br/>
"""如果对象object为哈希表类型,返回对象object的哈希值。哈希值为整数。在字典查找中,哈希值用于快速比较字典的键。两个数值如果相等,则哈希值也相等。"""<br/>
""" x.__hash__() <==> hash(x) """<br/>
pass
def __hex__(self):<br/>
""" 返回当前数的 十六进制 表示 """<br/>
""" x.__hex__() <==> hex(x) """<br/>
pass
def __index__(self):<br/>
""" 用于切片,数字无意义 """<br/>
""" x[y:z] <==> x[y.__index__():z.__index__()] """<br/>
pass
def __init__(self, x, base=10): # known special case of int.__init__<br/>
""" 构造方法,执行 x = 123 或 x = int(10) 时,自动调用,暂时忽略 """<br/>
"""<br/>
int(x=0) -> int or long<br/>
int(x, base=10) -> int or long
Convert a number or string to an integer, or return 0 if no arguments<br/>
are given. If x is floating point, the conversion truncates towards zero.<br/>
If x is outside the integer range, the function returns a long instead.
If x is not a number or if base is given, then x must be a string or<br/>
Unicode object representing an integer literal in the given base. The<br/>
literal can be preceded by '+' or '-' and be surrounded by whitespace.<br/>
The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to<br/>
interpret the base from the string as an integer literal.<br/>
>>> int('0b100', base=0)<br/>
# (copied from class doc)<br/>
"""<br/>
pass
def __int__(self):<br/>
""" 转换为整数 """<br/>
""" x.__int__() <==> int(x) """<br/>
pass
def __invert__(self):<br/>
""" x.__invert__() <==> ~x """<br/>
pass
def __long__(self):<br/>
""" 转换为长整数 """<br/>
""" x.__long__() <==> long(x) """<br/>
pass
def __lshift__(self, y):<br/>
""" x.__lshift__(y) <==> x<<y """<br/>
pass
def __mod__(self, y):<br/>
""" x.__mod__(y) <==> x%y """<br/>
pass
def __mul__(self, y):<br/>
""" x.__mul__(y) <==> x*y """<br/>
pass
def __neg__(self):<br/>
""" x.__neg__() <==> -x """<br/>
pass
@staticmethod # known case of __new__<br/>
def __new__(S, *more):<br/>
""" T.__new__(S, ...) -> a new object with type S, a subtype of T """<br/>
pass
def __nonzero__(self):<br/>
""" x.__nonzero__() <==> x != 0 """<br/>
pass
def __oct__(self):<br/>
""" 返回改值的 八进制 表示 """<br/>
""" x.__oct__() <==> oct(x) """<br/>
pass
def __or__(self, y):<br/>
""" x.__or__(y) <==> x|y """<br/>
pass
def __pos__(self):<br/>
""" x.__pos__() <==> +x """<br/>
pass
def __pow__(self, y, z=None):<br/>
""" 幂,次方 """<br/>
""" x.__pow__(y[, z]) <==> pow(x, y[, z]) """<br/>
pass
def __radd__(self, y):<br/>
""" x.__radd__(y) <==> y+x """<br/>
pass
def __rand__(self, y):<br/>
""" x.__rand__(y) <==> y&x """<br/>
pass
def __rdivmod__(self, y):<br/>
""" x.__rdivmod__(y) <==> divmod(y, x) """<br/>
pass
def __rdiv__(self, y):<br/>
""" x.__rdiv__(y) <==> y/x """<br/>
pass
def __repr__(self):<br/>
"""转化为解释器可读取的形式 """<br/>
""" x.__repr__() <==> repr(x) """<br/>
pass
def __str__(self):<br/>
"""转换为人阅读的形式,如果没有适于人阅读的解释形式的话,则返回解释器课阅读的形式"""<br/>
""" x.__str__() <==> str(x) """<br/>
pass
def __rfloordiv__(self, y):<br/>
""" x.__rfloordiv__(y) <==> y//x """<br/>
pass
def __rlshift__(self, y):<br/>
""" x.__rlshift__(y) <==> y<<x """<br/>
pass
def __rmod__(self, y):<br/>
""" x.__rmod__(y) <==> y%x """<br/>
pass
def __rmul__(self, y):<br/>
""" x.__rmul__(y) <==> y*x """<br/>
pass
def __ror__(self, y):<br/>
""" x.__ror__(y) <==> y|x """<br/>
pass
def __rpow__(self, x, z=None):<br/>
""" y.__rpow__(x[, z]) <==> pow(x, y[, z]) """<br/>
pass
def __rrshift__(self, y):<br/>
""" x.__rrshift__(y) <==> y>>x """<br/>
pass
def __rshift__(self, y):<br/>
""" x.__rshift__(y) <==> x>>y """<br/>
pass
def __rsub__(self, y):<br/>
""" x.__rsub__(y) <==> y-x """<br/>
pass
def __rtruediv__(self, y):<br/>
""" x.__rtruediv__(y) <==> y/x """<br/>
pass
def __rxor__(self, y):<br/>
""" x.__rxor__(y) <==> y^x """<br/>
pass
def __sub__(self, y):<br/>
""" x.__sub__(y) <==> x-y """<br/>
pass
def __truediv__(self, y):<br/>
""" x.__truediv__(y) <==> x/y """<br/>
pass
def __trunc__(self, *args, **kwargs):<br/>
""" 返回数值被截取为整形的值,在整形中无意义 """<br/>
pass
def __xor__(self, y):<br/>
""" x.__xor__(y) <==> x^y """<br/>
pass
denominator = property(lambda self: object(), lambda self, v: None, lambda self: None) # default<br/>
""" 分母 = 1 """<br/>
"""the denominator of a rational number in lowest terms"""
imag = property(lambda self: object(), lambda self, v: None, lambda self: None) # default<br/>
""" 虚数,无意义 """<br/>
"""the imaginary part of a complex number"""
numerator = property(lambda self: object(), lambda self, v: None, lambda self: None) # default<br/>
""" 分子 = 数字大小 """<br/>
"""the numerator of a rational number in lowest terms"""
real = property(lambda self: object(), lambda self, v: None, lambda self: None) # default<br/>
""" 实属,无意义 """<br/>
"""the real part of a complex number"""
int
int
二:字符串 str
class str(basestring):<br/>
"""<br/>
str(object='') -> string
Return a nice string representation of the object.<br/>
If the argument is a string, the return value is the same object.<br/>
"""<br/>
def capitalize(self):<br/>
""" 首字母变大写 """<br/>
"""<br/>
S.capitalize() -> string
Return a copy of the string S with only its first character<br/>
capitalized.<br/>
"""<br/>
return ""
def center(self, width, fillchar=None):<br/>
""" 内容居中,width:总长度;fillchar:空白处填充内容,默认无 """<br/>
"""<br/>
S.center(width[, fillchar]) -> string
Return S centered in a string of length width. Padding is<br/>
done using the specified fill character (default is a space)<br/>
"""<br/>
return ""
def count(self, sub, start=None, end=None):<br/>
""" 子序列个数 """<br/>
"""<br/>
S.count(sub[, start[, end]]) -> int
Return the number of non-overlapping occurrences of substring sub in<br/>
string S[start:end]. Optional arguments start and end are interpreted<br/>
as in slice notation.<br/>
"""<br/>
return 0
def decode(self, encoding=None, errors=None):<br/>
""" 解码 """<br/>
"""<br/>
S.decode([encoding[,errors]]) -> object
Decodes S using the codec registered for encoding. encoding defaults<br/>
to the default encoding. errors may be given to set a different error<br/>
handling scheme. Default is 'strict' meaning that encoding errors raise<br/>
a UnicodeDecodeError. Other possible values are 'ignore' and 'replace'<br/>
as well as any other name registered with codecs.register_error that is<br/>
able to handle UnicodeDecodeErrors.<br/>
"""<br/>
return object()
def encode(self, encoding=None, errors=None):<br/>
""" 编码,针对unicode """<br/>
"""<br/>
S.encode([encoding[,errors]]) -> object
Encodes S using the codec registered for encoding. encoding defaults<br/>
to the default encoding. errors may be given to set a different error<br/>
handling scheme. Default is 'strict' meaning that encoding errors raise<br/>
a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and<br/>
'xmlcharrefreplace' as well as any other name registered with<br/>
codecs.register_error that is able to handle UnicodeEncodeErrors.<br/>
"""<br/>
return object()
def endswith(self, suffix, start=None, end=None):<br/>
""" 是否以 xxx 结束 """<br/>
"""<br/>
S.endswith(suffix[, start[, end]]) -> bool
Return True if S ends with the specified suffix, False otherwise.<br/>
With optional start, test S beginning at that position.<br/>
With optional end, stop comparing S at that position.<br/>
suffix can also be a tuple of strings to try.<br/>
"""<br/>
return False
def expandtabs(self, tabsize=None):<br/>
""" 将tab转换成空格,默认一个tab转换成8个空格 """<br/>
"""<br/>
S.expandtabs([tabsize]) -> string
Return a copy of S where all tab characters are expanded using spaces.<br/>
If tabsize is not given, a tab size of 8 characters is assumed.<br/>
"""<br/>
return ""
def find(self, sub, start=None, end=None):<br/>
""" 寻找子序列位置,如果没找到,返回 -1 """<br/>
"""<br/>
S.find(sub [,start [,end]]) -> int
Return the lowest index in S where substring sub is found,<br/>
such that sub is contained within S[start:end]. Optional<br/>
arguments start and end are interpreted as in slice notation.
Return -1 on failure.<br/>
"""<br/>
return 0
def format(*args, **kwargs): # known special case of str.format<br/>
""" 字符串格式化,动态参数,将函数式编程时细说 """<br/>
"""<br/>
S.format(*args, **kwargs) -> string
Return a formatted version of S, using substitutions from args and kwargs.<br/>
The substitutions are identified by braces ('{' and '}').<br/>
"""<br/>
pass
def index(self, sub, start=None, end=None):<br/>
""" 子序列位置,如果没找到,报错 """<br/>
S.index(sub [,start [,end]]) -> int
Like S.find() but raise ValueError when the substring is not found.<br/>
"""<br/>
return 0
def isalnum(self):<br/>
""" 是否是字母和数字 """<br/>
"""<br/>
S.isalnum() -> bool
Return True if all characters in S are alphanumeric<br/>
and there is at least one character in S, False otherwise.<br/>
"""<br/>
return False
def isalpha(self):<br/>
""" 是否是字母 """<br/>
"""<br/>
S.isalpha() -> bool
Return True if all characters in S are alphabetic<br/>
and there is at least one character in S, False otherwise.<br/>
"""<br/>
return False
def isdigit(self):<br/>
""" 是否是数字 """<br/>
"""<br/>
S.isdigit() -> bool
Return True if all characters in S are digits<br/>
and there is at least one character in S, False otherwise.<br/>
"""<br/>
return False
def islower(self):<br/>
""" 是否小写 """<br/>
"""<br/>
S.islower() -> bool
Return True if all cased characters in S are lowercase and there is<br/>
at least one cased character in S, False otherwise.<br/>
"""<br/>
return False
def isspace(self):<br/>
"""<br/>
S.isspace() -> bool
Return True if all characters in S are whitespace<br/>
and there is at least one character in S, False otherwise.<br/>
"""<br/>
return False
def istitle(self):<br/>
"""<br/>
S.istitle() -> bool
Return True if S is a titlecased string and there is at least one<br/>
character in S, i.e. uppercase characters may only follow uncased<br/>
characters and lowercase characters only cased ones. Return False<br/>
otherwise.<br/>
"""<br/>
return False
def isupper(self):<br/>
"""<br/>
S.isupper() -> bool
Return True if all cased characters in S are uppercase and there is<br/>
at least one cased character in S, False otherwise.<br/>
"""<br/>
return False
def join(self, iterable):<br/>
""" 连接 """<br/>
"""<br/>
S.join(iterable) -> string
Return a string which is the concatenation of the strings in the<br/>
iterable. The separator between elements is S.<br/>
"""<br/>
return ""
def ljust(self, width, fillchar=None):<br/>
""" 内容左对齐,右侧填充 """<br/>
"""<br/>
S.ljust(width[, fillchar]) -> string
Return S left-justified in a string of length width. Padding is<br/>
done using the specified fill character (default is a space).<br/>
"""<br/>
return ""
def lower(self):<br/>
""" 变小写 """<br/>
"""<br/>
S.lower() -> string
Return a copy of the string S converted to lowercase.<br/>
"""<br/>
return ""
def lstrip(self, chars=None):<br/>
""" 移除左侧空白 """<br/>
"""<br/>
S.lstrip([chars]) -> string or unicode
Return a copy of the string S with leading whitespace removed.<br/>
If chars is given and not None, remove characters in chars instead.<br/>
If chars is unicode, S will be converted to unicode before stripping<br/>
"""<br/>
return ""
def partition(self, sep):<br/>
""" 分割,前,中,后三部分 """<br/>
"""<br/>
S.partition(sep) -> (head, sep, tail)
Search for the separator sep in S, and return the part before it,<br/>
the separator itself, and the part after it. If the separator is not<br/>
found, return S and two empty strings.<br/>
"""<br/>
pass
def replace(self, old, new, count=None):<br/>
""" 替换 """<br/>
"""<br/>
S.replace(old, new[, count]) -> string
Return a copy of string S with all occurrences of substring<br/>
old replaced by new. If the optional argument count is<br/>
given, only the first count occurrences are replaced.<br/>
"""<br/>
return ""
def rfind(self, sub, start=None, end=None):<br/>
"""<br/>
S.rfind(sub [,start [,end]]) -> int
Return the highest index in S where substring sub is found,<br/>
such that sub is contained within S[start:end]. Optional<br/>
arguments start and end are interpreted as in slice notation.
Return -1 on failure.<br/>
"""<br/>
return 0
def rindex(self, sub, start=None, end=None):<br/>
"""<br/>
S.rindex(sub [,start [,end]]) -> int
Like S.rfind() but raise ValueError when the substring is not found.<br/>
"""<br/>
return 0
def rjust(self, width, fillchar=None):<br/>
"""<br/>
S.rjust(width[, fillchar]) -> string
Return S right-justified in a string of length width. Padding is<br/>
done using the specified fill character (default is a space)<br/>
"""<br/>
return ""
def rpartition(self, sep):<br/>
"""<br/>
S.rpartition(sep) -> (head, sep, tail)
Search for the separator sep in S, starting at the end of S, and return<br/>
the part before it, the separator itself, and the part after it. If the<br/>
separator is not found, return two empty strings and S.<br/>
"""<br/>
pass
def rsplit(self, sep=None, maxsplit=None):<br/>
"""<br/>
S.rsplit([sep [,maxsplit]]) -> list of strings
Return a list of the words in the string S, using sep as the<br/>
delimiter string, starting at the end of the string and working<br/>
to the front. If maxsplit is given, at most maxsplit splits are<br/>
done. If sep is not specified or is None, any whitespace string<br/>
is a separator.<br/>
"""<br/>
return []
def rstrip(self, chars=None):<br/>
"""<br/>
S.rstrip([chars]) -> string or unicode
Return a copy of the string S with trailing whitespace removed.<br/>
If chars is given and not None, remove characters in chars instead.<br/>
If chars is unicode, S will be converted to unicode before stripping<br/>
"""<br/>
return ""
def split(self, sep=None, maxsplit=None):<br/>
""" 分割, maxsplit最多分割几次 """<br/>
"""<br/>
S.split([sep [,maxsplit]]) -> list of strings
Return a list of the words in the string S, using sep as the<br/>
delimiter string. If maxsplit is given, at most maxsplit<br/>
splits are done. If sep is not specified or is None, any<br/>
whitespace string is a separator and empty strings are removed<br/>
from the result.<br/>
"""<br/>
return []
def splitlines(self, keepends=False):<br/>
""" 根据换行分割 """<br/>
"""<br/>
S.splitlines(keepends=False) -> list of strings
Return a list of the lines in S, breaking at line boundaries.<br/>
Line breaks are not included in the resulting list unless keepends<br/>
is given and true.<br/>
"""<br/>
return []
def startswith(self, prefix, start=None, end=None):<br/>
""" 是否起始 """<br/>
"""<br/>
S.startswith(prefix[, start[, end]]) -> bool
Return True if S starts with the specified prefix, False otherwise.<br/>
With optional start, test S beginning at that position.<br/>
With optional end, stop comparing S at that position.<br/>
prefix can also be a tuple of strings to try.<br/>
"""<br/>
return False
def strip(self, chars=None):<br/>
""" 移除两段空白 """<br/>
"""<br/>
S.strip([chars]) -> string or unicode
Return a copy of the string S with leading and trailing<br/>
whitespace removed.<br/>
If chars is given and not None, remove characters in chars instead.<br/>
If chars is unicode, S will be converted to unicode before stripping<br/>
"""<br/>
return ""
def swapcase(self):<br/>
""" 大写变小写,小写变大写 """<br/>
"""<br/>
S.swapcase() -> string
Return a copy of the string S with uppercase characters<br/>
converted to lowercase and vice versa.<br/>
"""<br/>
return ""
def title(self):<br/>
"""<br/>
S.title() -> string
Return a titlecased version of S, i.e. words start with uppercase<br/>
characters, all remaining cased characters have lowercase.<br/>
"""<br/>
return ""
def translate(self, table, deletechars=None):<br/>
"""<br/>
转换,需要先做一个对应表,最后一个表示删除字符集合<br/>
intab = "aeiou"<br/>
outtab = ""<br/>
trantab = maketrans(intab, outtab)<br/>
str = "this is string example....wow!!!"<br/>
print str.translate(trantab, 'xm')<br/>
"""
"""<br/>
S.translate(table [,deletechars]) -> string
Return a copy of the string S, where all characters occurring<br/>
in the optional argument deletechars are removed, and the<br/>
remaining characters have been mapped through the given<br/>
translation table, which must be a string of length 256 or None.<br/>
If the table argument is None, no translation is applied and<br/>
the operation simply removes the characters in deletechars.<br/>
"""<br/>
return ""
def upper(self):<br/>
"""<br/>
S.upper() -> string
Return a copy of the string S converted to uppercase.<br/>
"""<br/>
return ""
def zfill(self, width):<br/>
"""方法返回指定长度的字符串,原字符串右对齐,前面填充0。"""<br/>
"""<br/>
S.zfill(width) -> string
Pad a numeric string S with zeros on the left, to fill a field<br/>
of the specified width. The string S is never truncated.<br/>
"""<br/>
return ""
def _formatter_field_name_split(self, *args, **kwargs): # real signature unknown<br/>
pass
def _formatter_parser(self, *args, **kwargs): # real signature unknown<br/>
pass
def __add__(self, y):<br/>
""" x.__add__(y) <==> x+y """<br/>
pass
def __contains__(self, y):<br/>
""" x.__contains__(y) <==> y in x """<br/>
pass
def __eq__(self, y):<br/>
""" x.__eq__(y) <==> x==y """<br/>
pass
def __format__(self, format_spec):<br/>
"""<br/>
S.__format__(format_spec) -> string
Return a formatted version of S as described by format_spec.<br/>
"""<br/>
return ""
def __getattribute__(self, name):<br/>
""" x.__getattribute__('name') <==> x.name """<br/>
pass
def __getitem__(self, y):<br/>
""" x.__getitem__(y) <==> x[y] """<br/>
pass
def __getnewargs__(self, *args, **kwargs): # real signature unknown<br/>
pass
def __getslice__(self, i, j):<br/>
"""<br/>
x.__getslice__(i, j) <==> x[i:j]
Use of negative indices is not supported.<br/>
"""<br/>
pass
def __ge__(self, y):<br/>
""" x.__ge__(y) <==> x>=y """<br/>
pass
def __gt__(self, y):<br/>
""" x.__gt__(y) <==> x>y """<br/>
pass
def __hash__(self):<br/>
""" x.__hash__() <==> hash(x) """<br/>
pass
def __init__(self, string=''): # known special case of str.__init__<br/>
"""<br/>
str(object='') -> string
Return a nice string representation of the object.<br/>
If the argument is a string, the return value is the same object.<br/>
# (copied from class doc)<br/>
"""<br/>
pass
def __len__(self):<br/>
""" x.__len__() <==> len(x) """<br/>
pass
def __le__(self, y):<br/>
""" x.__le__(y) <==> x<=y """<br/>
pass
def __lt__(self, y):<br/>
""" x.__lt__(y) <==> x<y """<br/>
pass
def __mod__(self, y):<br/>
""" x.__mod__(y) <==> x%y """<br/>
pass
def __mul__(self, n):<br/>
""" x.__mul__(n) <==> x*n """<br/>
pass
@staticmethod # known case of __new__<br/>
def __new__(S, *more):<br/>
""" T.__new__(S, ...) -> a new object with type S, a subtype of T """<br/>
pass
def __ne__(self, y):<br/>
""" x.__ne__(y) <==> x!=y """<br/>
pass
def __repr__(self):<br/>
""" x.__repr__() <==> repr(x) """<br/>
pass
def __rmod__(self, y):<br/>
""" x.__rmod__(y) <==> y%x """<br/>
pass
def __rmul__(self, n):<br/>
""" x.__rmul__(n) <==> n*x """<br/>
pass
def __sizeof__(self):<br/>
""" S.__sizeof__() -> size of S in memory, in bytes """<br/>
pass
def __str__(self):<br/>
""" x.__str__() <==> str(x) """<br/>
pass
str
str
字符串是 Python 中最常用的数据类型。我们可以使用引号,双引号,或三引号来创建字符串。
a = 'poe'<br/> b = "bruce"<br/> c = """Jacky Chen"""
1:字符串连接
方法一:join方法
a = ['a','b','c','d']<br/> content = ''<br/> content = ' '.join(a)<br/> print(content)
方法二:用字符串的替换占位符替换
a = ['a','b','c','d']<br/> content = ''<br/> content = '%s%s%s%s' % tuple(a)<br/> print(content)
方法三:for循环
a = ['a','b','c','d']<br/>
content = ''<br/>
for i in a:<br/>
content += i<br/>
print(content)
注意:方法三效率低,不推荐使用!
原因:在循环连接字符串的时候,他每次连接一次,就要重新开辟空间,然后把字符串连接起来,再放入新的空间,再一次循环,又要开辟新的空间,把字符串连接起来放入新的空间,如此反复,内存操作比较频繁,每次都要计算内存空间,然后开辟内存空间,再释放内存空间,效率非常低,你也许操作比较少的数据的时候看不出来,感觉影响不大,但是你碰到操作数据量比较多的时候,这个方法就要退休了。
2:字符串截取
我们可以通过索引来提取想要获取的字符,可以把python的字符串也做为字符串的列表就更好理解
python的字串列表有2种取值顺序:
1是从左到右索引默认0开始的,最大范围是字符串长度少1
s = 'ilovepython'<br/> s[0]的结果是i
2是从右到左索引默认-1开始的,最大范围是字符串开头
s = 'ilovepython'<br/> s[-1]的结果是n
上面这个是取得一个字符,如果你的实际要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
比如
s = 'ilovepython'<br/> s[1:5]的结果是love
当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界,比如上面的结果包含了s[1]的值l,而取到的最大范围不包括上边界,就是s[5]的值p
注:s[1:5]形式截头不截尾
3:字符串替换
方法一:使用repalce方法
a = 'hello world'<br/>
b = a.replace('world','python')<br/>
print(b)
方法二:使用正则表达式
import re<br/>
a = 'hello world'<br/>
strinfo = re.compile('world')<br/>
b = strinfo.sub('python',a)<br/>
print(b)
4:字符串比较
cmp方法比较两个对象,并根据结果返回一个整数。cmp(x,y)如果X< Y,返回值是负数 如果X>Y 返回的值为正数。
str1 = 'strch'<br/> str2 = 'strchr'<br/> print(cmp(str1,str2))<br/> ## -1
5:字符串相加
我们通过操作符号+来进行字符串的相加,不过建议还是用其他的方式来进行字符串的拼接,这样效率高点。
原因:在循环连接字符串的时候,他每次连接一次,就要重新开辟空间,然后把字符串连接起来,再放入新的空间,再一次循环,又要开辟新的空间,把字符串连接起来放入新的空间,如此反复,内存操作比较频繁,每次都要计算内存空间,然后开辟内存空间,再释放内存空间,效率非常低。
str1 = 'strch'<br/> str2 = 'strchr'<br/> print(str1+str2)<br/> ## strchstrchr
6:字符串查找
python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法。
方法一:find方法
info = 'abca'<br/>
print info.find('a')##从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
info = 'abca'<br/>
print info.find('a',1)##从下标1开始,查找在字符串里第一个出现的子串:返回结果3
info = 'abca'<br/>
print info.find('')##返回-1,查找不到返回-1
方法二:index方法
python 的index方法是在字符串里查找子串第一次出现的位置,类似字符串的find方法,不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1
info = 'abca'<br/>
print info.index('a')<br/>
print info.index('')
7:字符串分割
字符串分割,可以用split,rsplit方法,通过相应的规则来切割成生成列表对象
info = 'name:haha,age:20$name:python,age:30$name:fef,age:55'<br/>
content = info.split('$')<br/>
print content<br/>
## ['name:haha,age:20', 'name:python,age:30', 'name:fef,age:55']
8:字符串反转
a = 'abcd'<br/> b = a[::-1]##[::-1]通过步进反转<br/> print b
9:字符串编码
10:字符串追加和拼接
通过字符串的占位符来进行字符串的拼接
#1 元组拼接<br/>
m = 'python'<br/>
astr = 'i love %s' % m<br/>
print astr
#2 字符串的format方法<br/>
m = 'python'<br/>
astr = "i love {python}".format(python=m)<br/>
print astr
#3 字典格式化字符串<br/>
m = 'python'<br/>
astr = "i love %(python)s " % {'python':m}<br/>
print astr
11:字符串复制
#通过变量来进行赋值<br/> fstr = 'strcpy'<br/> sstr = fstr<br/> fstr = 'strcpy2'<br/> print sstr
12:字符串长度
#通过内置方法len()来计算字符串的长度,注意这个计算的是字符的长度。<br/> aa = 'afebb'<br/> bb = '你'<br/> print len(aa)<br/> print len(bb)
13:字符串大小写
#通过下面的upper(),lower()等方法来转换大小写<br/> S.upper()#S中的字母大写<br/> S.lower() #S中的字母小写<br/> S.capitalize() #首字母大写<br/> S.istitle() #S是否是首字母大写的<br/> S.isupper() #S中的字母是否便是大写<br/> S.islower() #S中的字母是否全是小写
14:字符串去空格
#通过strip(),lstrip(),rstrip()方法去除字符串的空格<br/>
S.strip() #去掉字符串的左右空格<br/>
S.lstrip() #去掉字符串的左边空格<br/>
S.rstrip() #去掉字符串的右边空格<br/>
#注意:strip()函数不仅可以去空格还可以去除指定的字符,如<br/>
S.strip("\n")
15:字符串其他方法
#字符串相关的其他方法:count(),join()方法等。<br/> S.center(width, [fillchar]) #中间对齐<br/> S.count(substr, [start, [end]]) #计算substr在S中出现的次数<br/> S.expandtabs([tabsize]) #把S中的tab字符替换没空格,每个tab替换为tabsize个空格,默认是8个<br/> S.isalnum() #是否全是字母和数字,并至少有一个字符<br/> S.isalpha() #是否全是字母,并至少有一个字符<br/> S.isspace() #是否全是空白字符,并至少有一个字符<br/> S.join()#S中的join,把列表生成一个字符串对象<br/> S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。<br/> S.rjust(width,[fillchar]) #右对齐<br/> S.splitlines([keepends]) #把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。<br/> S.swapcase() #大小写互换
三:列表 list
class list(object):<br/>
"""<br/>
list() -> new empty list<br/>
list(iterable) -> new list initialized from iterable's items<br/>
"""<br/>
def append(self, p_object): # real signature unknown; restored from __doc__<br/>
""" L.append(object) -- append object to end """<br/>
pass
def count(self, value): # real signature unknown; restored from __doc__<br/>
""" L.count(value) -> integer -- return number of occurrences of value """<br/>
return 0
def extend(self, iterable): # real signature unknown; restored from __doc__<br/>
""" L.extend(iterable) -- extend list by appending elements from the iterable """<br/>
pass
def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__<br/>
"""<br/>
L.index(value, [start, [stop]]) -> integer -- return first index of value.<br/>
Raises ValueError if the value is not present.<br/>
"""<br/>
return 0
def insert(self, index, p_object): # real signature unknown; restored from __doc__<br/>
""" L.insert(index, object) -- insert object before index """<br/>
pass
def pop(self, index=None): # real signature unknown; restored from __doc__<br/>
"""<br/>
L.pop([index]) -> item -- remove and return item at index (default last).<br/>
Raises IndexError if list is empty or index is out of range.<br/>
"""<br/>
pass
def remove(self, value): # real signature unknown; restored from __doc__<br/>
"""<br/>
L.remove(value) -- remove first occurrence of value.<br/>
Raises ValueError if the value is not present.<br/>
"""<br/>
pass
def reverse(self): # real signature unknown; restored from __doc__<br/>
""" L.reverse() -- reverse *IN PLACE* """<br/>
pass
def sort(self, cmp=None, key=None, reverse=False): # real signature unknown; restored from __doc__<br/>
"""<br/>
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;<br/>
cmp(x, y) -> -1, 0, 1<br/>
"""<br/>
pass
def __add__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__add__(y) <==> x+y """<br/>
pass
def __contains__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__contains__(y) <==> y in x """<br/>
pass
def __delitem__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__delitem__(y) <==> del x[y] """<br/>
pass
def __delslice__(self, i, j): # real signature unknown; restored from __doc__<br/>
"""<br/>
x.__delslice__(i, j) <==> del x[i:j]
Use of negative indices is not supported.<br/>
"""<br/>
pass
def __eq__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__eq__(y) <==> x==y """<br/>
pass
def __getattribute__(self, name): # real signature unknown; restored from __doc__<br/>
""" x.__getattribute__('name') <==> x.name """<br/>
pass
def __getitem__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__getitem__(y) <==> x[y] """<br/>
pass
def __getslice__(self, i, j): # real signature unknown; restored from __doc__<br/>
"""<br/>
x.__getslice__(i, j) <==> x[i:j]
Use of negative indices is not supported.<br/>
"""<br/>
pass
def __ge__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__ge__(y) <==> x>=y """<br/>
pass
def __gt__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__gt__(y) <==> x>y """<br/>
pass
def __iadd__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__iadd__(y) <==> x+=y """<br/>
pass
def __imul__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__imul__(y) <==> x*=y """<br/>
pass
def __init__(self, seq=()): # known special case of list.__init__<br/>
"""<br/>
list() -> new empty list<br/>
list(iterable) -> new list initialized from iterable's items<br/>
# (copied from class doc)<br/>
"""<br/>
pass
def __iter__(self): # real signature unknown; restored from __doc__<br/>
""" x.__iter__() <==> iter(x) """<br/>
pass
def __len__(self): # real signature unknown; restored from __doc__<br/>
""" x.__len__() <==> len(x) """<br/>
pass
def __le__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__le__(y) <==> x<=y """<br/>
pass
def __lt__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__lt__(y) <==> x<y """<br/>
pass
def __mul__(self, n): # real signature unknown; restored from __doc__<br/>
""" x.__mul__(n) <==> x*n """<br/>
pass
@staticmethod # known case of __new__<br/>
def __new__(S, *more): # real signature unknown; restored from __doc__<br/>
""" T.__new__(S, ...) -> a new object with type S, a subtype of T """<br/>
pass
def __ne__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__ne__(y) <==> x!=y """<br/>
pass
def __repr__(self): # real signature unknown; restored from __doc__<br/>
""" x.__repr__() <==> repr(x) """<br/>
pass
def __reversed__(self): # real signature unknown; restored from __doc__<br/>
""" L.__reversed__() -- return a reverse iterator over the list """<br/>
pass
def __rmul__(self, n): # real signature unknown; restored from __doc__<br/>
""" x.__rmul__(n) <==> n*x """<br/>
pass
def __setitem__(self, i, y): # real signature unknown; restored from __doc__<br/>
""" x.__setitem__(i, y) <==> x[i]=y """<br/>
pass
def __setslice__(self, i, j, y): # real signature unknown; restored from __doc__<br/>
"""<br/>
x.__setslice__(i, j, y) <==> x[i:j]=y
Use of negative indices is not supported.<br/>
"""<br/>
pass
def __sizeof__(self): # real signature unknown; restored from __doc__<br/>
""" L.__sizeof__() -- size of L in memory, in bytes """<br/>
pass
__hash__ = None
list
list
1:创建列表
list1 = ['physics', 'chemistry', 1997, 2000];<br/> list2 = [1, 2, 3, 4, 5 ];<br/> list3 = ["a", "b", "c", "d"];
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等
2:访问列表
list1 = ['physics', 'chemistry', 1997, 2000];<br/> list2 = [1, 2, 3, 4, 5, 6, 7 ];<br/> print(list1[0])<br/> print(list2[2:5])#截头不截尾<br/> ## physics<br/> ## [3, 4, 5]
3:append方法:在列表末尾添加新的对象
aList = [123, 'xyz', 'zara', 'abc'];<br/> aList.append( 2009 );<br/> print "Updated List : ", aList;<br/> ## Updated List : [123, 'xyz', 'zara', 'abc', 2009]
4:count方法:统计某个元素在列表中出现的次数
aList = [123, 'xyz', 'zara', 123];<br/> print(aList.count(123))<br/> ## 2
5:extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
aList = [123, 'xyz', 'zara', 'abc', 123];<br/> bList = [2009, 'manni'];<br/> aList.extend(bList) print "Extended List : ", aList ;<br/> ## Extended List : [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
6:index() 函数用于从列表中找出某个值第一个匹配项的索引位置
aList = [123, 'xyz', 'zara', 'abc']; print "Index for xyz : ", aList.index( 'xyz' ) ;<br/> print "Index for zara : ", aList.index( 'zara' ) ; ##Index for xyz : 1<br/> ## Index for zara : 2
7:insert() 函数用于将指定对象插入列表的指定位置
aList = [123, 'xyz', 'zara', 'abc'] aList.insert( 3, 2009) print "Final List : ", aList ## Final List : [123, 'xyz', 'zara', 2009, 'abc']
insert()接收两个参数,list.insert(index, obj),第一个参数index为要插入的索引位置,第二个参数要插入的元素
8:pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
aList = [123, 'xyz', 'zara', 'abc']; print "A List : ", aList.pop();<br/> print "B List : ", aList.pop(); ## A List : abc<br/> ## B List : zara
9:remove() 函数用于移除列表中某个值的第一个匹配项
aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
aList.remove('xyz');<br/>
print "List : ", aList;<br/>
aList.remove('abc');<br/>
print "List : ", aList;
## List : [123, 'zara', 'abc', 'xyz']<br/>
## List : [123, 'zara', 'xyz']
10:列表的四种遍历方法
aList = [123, 'xyz', 'zara', 123];
方法一:只遍历列表中的值
for value in aList :<br/>
print(value)<br/>
####################<br/>
123<br/>
xyz<br/>
zara<br/>
123
方法二:如果需要遍历列表中的索引与值,就需要用到enumerate
for key,value in enumerate(aList) :<br/>
print(key,value)<br/>
######################<br/>
(0, 123)<br/>
(1, 'xyz')<br/>
(2, 'zara')<br/>
(3, 123)
enumrate:为可迭代的对象添加序号,默认从0开始!因为列表的索引也是从0开始,所以我们在enumerate中不指定第二个参数,如有需要,可以指定从几开始,如下:
for key,value in enumerate(aList,1) :<br/>
print(key,value)<br/>
######################################<br/>
(1, 123)<br/>
(2, 'xyz')<br/>
(3, 'zara')<br/>
(4, 123)
方法三:
for i in range(len(aList)) :<br/>
print(i,aList[i])<br/>
##############################<br/>
(0, 123)<br/>
(1, 'xyz')<br/>
(2, 'zara')<br/>
(3, 123)
range和xrange:指定范围,生成指定的数字
方法四:使用iter()
for i in iter(aList) :<br/>
print(i)<br/>
##########################################<br/>
123<br/>
xyz<br/>
zara<br/>
123
四:元组 tuple
lass tuple(object):<br/>
"""<br/>
tuple() -> empty tuple<br/>
tuple(iterable) -> tuple initialized from iterable's items
If the argument is a tuple, the return value is the same object.<br/>
"""<br/>
def count(self, value): # real signature unknown; restored from __doc__<br/>
""" T.count(value) -> integer -- return number of occurrences of value """<br/>
return 0
def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__<br/>
"""<br/>
T.index(value, [start, [stop]]) -> integer -- return first index of value.<br/>
Raises ValueError if the value is not present.<br/>
"""<br/>
return 0
def __add__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__add__(y) <==> x+y """<br/>
pass
def __contains__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__contains__(y) <==> y in x """<br/>
pass
def __eq__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__eq__(y) <==> x==y """<br/>
pass
def __getattribute__(self, name): # real signature unknown; restored from __doc__<br/>
""" x.__getattribute__('name') <==> x.name """<br/>
pass
def __getitem__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__getitem__(y) <==> x[y] """<br/>
pass
def __getnewargs__(self, *args, **kwargs): # real signature unknown<br/>
pass
def __getslice__(self, i, j): # real signature unknown; restored from __doc__<br/>
"""<br/>
x.__getslice__(i, j) <==> x[i:j]
Use of negative indices is not supported.<br/>
"""<br/>
pass
def __ge__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__ge__(y) <==> x>=y """<br/>
pass
def __gt__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__gt__(y) <==> x>y """<br/>
pass
def __hash__(self): # real signature unknown; restored from __doc__<br/>
""" x.__hash__() <==> hash(x) """<br/>
pass
def __init__(self, seq=()): # known special case of tuple.__init__<br/>
"""<br/>
tuple() -> empty tuple<br/>
tuple(iterable) -> tuple initialized from iterable's items
If the argument is a tuple, the return value is the same object.<br/>
# (copied from class doc)<br/>
"""<br/>
pass
def __iter__(self): # real signature unknown; restored from __doc__<br/>
""" x.__iter__() <==> iter(x) """<br/>
pass
def __len__(self): # real signature unknown; restored from __doc__<br/>
""" x.__len__() <==> len(x) """<br/>
pass
def __le__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__le__(y) <==> x<=y """<br/>
pass
def __lt__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__lt__(y) <==> x<y """<br/>
pass
def __mul__(self, n): # real signature unknown; restored from __doc__<br/>
""" x.__mul__(n) <==> x*n """<br/>
pass
@staticmethod # known case of __new__<br/>
def __new__(S, *more): # real signature unknown; restored from __doc__<br/>
""" T.__new__(S, ...) -> a new object with type S, a subtype of T """<br/>
pass
def __ne__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__ne__(y) <==> x!=y """<br/>
pass
def __repr__(self): # real signature unknown; restored from __doc__<br/>
""" x.__repr__() <==> repr(x) """<br/>
pass
def __rmul__(self, n): # real signature unknown; restored from __doc__<br/>
""" x.__rmul__(n) <==> n*x """<br/>
pass
def __sizeof__(self): # real signature unknown; restored from __doc__<br/>
""" T.__sizeof__() -- size of T in memory, in bytes """<br/>
pass
tuple
tuple
Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可
tuple只有两个可使用的功能:count , index
1:创建元组
tup1 = ();#创建空元组 tup1 = (50,);#元组中只包含一个元素时,需要在元素后面添加逗号
元组与字符串类似,下标索引从0开始,可以进行截取,组合等。元组的访问与列表一样!
2:元组的连接组合
tup1 = (12, 34.56);<br/>
tup2 = ('abc', 'xyz');
# 以下修改元组元素操作是非法的。<br/>
# tup1[0] = 100;
# 创建一个新的元组<br/>
tup3 = tup1 + tup2;<br/>
print tup3;<br/>
##########################################<br/>
(12, 34.56, 'abc', 'xyz')
3:删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
tup = ('physics', 'chemistry', 1997, 2000);
print tup;<br/>
del tup;<br/>
print "After deleting tup : "<br/>
print tup;<br/>
##########################################<br/>
以上实例元组被删除后,输出变量会有异常信息,输出如下所示:<br/>
('physics', 'chemistry', 1997, 2000)<br/>
After deleting tup :<br/>
Traceback (most recent call last):<br/>
File "test.py", line 9, in <module><br/>
print tup;<br/>
NameError: name 'tup' is not defined
五:字典 dict
class dict(object):<br/>
"""<br/>
dict() -> new empty dictionary<br/>
dict(mapping) -> new dictionary initialized from a mapping object's<br/>
(key, value) pairs<br/>
dict(iterable) -> new dictionary initialized as if via:<br/>
d = {}<br/>
for k, v in iterable:<br/>
d[k] = v<br/>
dict(**kwargs) -> new dictionary initialized with the name=value pairs<br/>
in the keyword argument list. For example: dict(one=1, two=2)<br/>
"""
def clear(self): # real signature unknown; restored from __doc__<br/>
""" 清除内容 """<br/>
""" D.clear() -> None. Remove all items from D. """<br/>
pass
def copy(self): # real signature unknown; restored from __doc__<br/>
""" 浅拷贝 """<br/>
""" D.copy() -> a shallow copy of D """<br/>
pass
@staticmethod # known case<br/>
def fromkeys(S, v=None): # real signature unknown; restored from __doc__<br/>
"""<br/>
dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.<br/>
v defaults to None.<br/>
"""<br/>
pass
def get(self, k, d=None): # real signature unknown; restored from __doc__<br/>
""" 根据key获取值,d是默认值 """<br/>
""" D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None. """<br/>
pass
def has_key(self, k): # real signature unknown; restored from __doc__<br/>
""" 是否有key """<br/>
""" D.has_key(k) -> True if D has a key k, else False """<br/>
return False
def items(self): # real signature unknown; restored from __doc__<br/>
""" 所有项的列表形式 """<br/>
""" D.items() -> list of D's (key, value) pairs, as 2-tuples """<br/>
return []
def iteritems(self): # real signature unknown; restored from __doc__<br/>
""" 项可迭代 """<br/>
""" D.iteritems() -> an iterator over the (key, value) items of D """<br/>
pass
def iterkeys(self): # real signature unknown; restored from __doc__<br/>
""" key可迭代 """<br/>
""" D.iterkeys() -> an iterator over the keys of D """<br/>
pass
def itervalues(self): # real signature unknown; restored from __doc__<br/>
""" value可迭代 """<br/>
""" D.itervalues() -> an iterator over the values of D """<br/>
pass
def keys(self): # real signature unknown; restored from __doc__<br/>
""" 所有的key列表 """<br/>
""" D.keys() -> list of D's keys """<br/>
return []
def pop(self, k, d=None): # real signature unknown; restored from __doc__<br/>
""" 获取并在字典中移除 """<br/>
"""<br/>
D.pop(k[,d]) -> v, remove specified key and return the corresponding value.<br/>
If key is not found, d is returned if given, otherwise KeyError is raised<br/>
"""<br/>
pass
def popitem(self): # real signature unknown; restored from __doc__<br/>
""" 获取并在字典中移除 """<br/>
"""<br/>
D.popitem() -> (k, v), remove and return some (key, value) pair as a<br/>
2-tuple; but raise KeyError if D is empty.<br/>
"""<br/>
pass
def setdefault(self, k, d=None): # real signature unknown; restored from __doc__<br/>
""" 如果key不存在,则创建,如果存在,则返回已存在的值且不修改 """<br/>
""" D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """<br/>
pass
def update(self, E=None, **F): # known special case of dict.update<br/>
""" 更新<br/>
{'name':'alex', 'age': 18000}<br/>
[('name','sbsbsb'),]<br/>
"""<br/>
"""<br/>
D.update([E, ]**F) -> None. Update D from dict/iterable E and F.<br/>
If E present and has a .keys() method, does: for k in E: D[k] = E[k]<br/>
If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v<br/>
In either case, this is followed by: for k in F: D[k] = F[k]<br/>
"""<br/>
pass
def values(self): # real signature unknown; restored from __doc__<br/>
""" 所有的值 """<br/>
""" D.values() -> list of D's values """<br/>
return []
def viewitems(self): # real signature unknown; restored from __doc__<br/>
""" 所有项,只是将内容保存至view对象中 """<br/>
""" D.viewitems() -> a set-like object providing a view on D's items """<br/>
pass
def viewkeys(self): # real signature unknown; restored from __doc__<br/>
""" D.viewkeys() -> a set-like object providing a view on D's keys """<br/>
pass
def viewvalues(self): # real signature unknown; restored from __doc__<br/>
""" D.viewvalues() -> an object providing a view on D's values """<br/>
pass
def __cmp__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__cmp__(y) <==> cmp(x,y) """<br/>
pass
def __contains__(self, k): # real signature unknown; restored from __doc__<br/>
""" D.__contains__(k) -> True if D has a key k, else False """<br/>
return False
def __delitem__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__delitem__(y) <==> del x[y] """<br/>
pass
def __eq__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__eq__(y) <==> x==y """<br/>
pass
def __getattribute__(self, name): # real signature unknown; restored from __doc__<br/>
""" x.__getattribute__('name') <==> x.name """<br/>
pass
def __getitem__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__getitem__(y) <==> x[y] """<br/>
pass
def __ge__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__ge__(y) <==> x>=y """<br/>
pass
def __gt__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__gt__(y) <==> x>y """<br/>
pass
def __init__(self, seq=None, **kwargs): # known special case of dict.__init__<br/>
"""<br/>
dict() -> new empty dictionary<br/>
dict(mapping) -> new dictionary initialized from a mapping object's<br/>
(key, value) pairs<br/>
dict(iterable) -> new dictionary initialized as if via:<br/>
d = {}<br/>
for k, v in iterable:<br/>
d[k] = v<br/>
dict(**kwargs) -> new dictionary initialized with the name=value pairs<br/>
in the keyword argument list. For example: dict(one=1, two=2)<br/>
# (copied from class doc)<br/>
"""<br/>
pass
def __iter__(self): # real signature unknown; restored from __doc__<br/>
""" x.__iter__() <==> iter(x) """<br/>
pass
def __len__(self): # real signature unknown; restored from __doc__<br/>
""" x.__len__() <==> len(x) """<br/>
pass
def __le__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__le__(y) <==> x<=y """<br/>
pass
def __lt__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__lt__(y) <==> x<y """<br/>
pass
@staticmethod # known case of __new__<br/>
def __new__(S, *more): # real signature unknown; restored from __doc__<br/>
""" T.__new__(S, ...) -> a new object with type S, a subtype of T """<br/>
pass
def __ne__(self, y): # real signature unknown; restored from __doc__<br/>
""" x.__ne__(y) <==> x!=y """<br/>
pass
def __repr__(self): # real signature unknown; restored from __doc__<br/>
""" x.__repr__() <==> repr(x) """<br/>
pass
def __setitem__(self, i, y): # real signature unknown; restored from __doc__<br/>
""" x.__setitem__(i, y) <==> x[i]=y """<br/>
pass
def __sizeof__(self): # real signature unknown; restored from __doc__<br/>
""" D.__sizeof__() -> size of D in memory, in bytes """<br/>
pass
__hash__ = None
dict
dict
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
1:访问字典里的值
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Name']: ", dict['Name'];<br/>
print "dict['Age']: ", dict['Age'];<br/>
##########################################<br/>
dict['Name']: Zara<br/>
dict['Age']: 7
2:修改字典里的值
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['Age'] = 8; # update existing entry<br/>
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age'];<br/>
print "dict['School']: ", dict['School'];<br/>
##########################################<br/>
dict['Age']: 8<br/>
dict['School']: DPS School
3:删除操作
能删单一的元素也能清空字典,清空只需一项操作。显示删除一个字典用del命令,如下实例:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
del dict['Name']; # 删除键是'Name'的条目<br/>
dict.clear(); # 清空词典所有条目<br/>
del dict ; # 删除词典
print "dict['Age']: ", dict['Age'];<br/>
print "dict['School']: ", dict['School'];<br/>
##########################################<br/>
dict['Age']:<br/>
Traceback (most recent call last):<br/>
File "test.py", line 8, in <module><br/>
print "dict['Age']: ", dict['Age'];<br/>
TypeError: 'type' object is unsubscriptable
clear() 函数用于删除字典内所有元素:
dict = {'Name': 'Zara', 'Age': 7};
print "Start Len : %d" % len(dict)<br/>
dict.clear()<br/>
print "End Len : %d" % len(dict)
注:clear函数是删除字典里的所有元素,删除后,该字典仍然存在,不过是个空字典而已
4: copy() 函数返回一个字典的浅复制
dict1 = {'Name': 'Zara', 'Age': 7};
dict2 = dict1.copy()<br/>
print "New Dictinary : %s" % str(dict2)<br/>
##########################################<br/>
New Dictinary : {'Age': 7, 'Name': 'Zara'}
有关深浅复制的区别,请点击这里!
5:fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
seq = ('name','age','sex')<br/>
dic = dict.fromkeys(seq)<br/>
print(dic)<br/>
#########################################<br/>
{'age': None, 'name': None, 'sex': None}
可以指定一个值,如:
seq = ('name','age','sex')<br/>
dic = dict.fromkeys(seq,10)<br/>
print(dic)<br/>
##########################################<br/>
{'age': 10, 'name': 10, 'sex': 10}
6:get() 函数返回指定键的值,如果值不在字典中返回默认值
dic = {'Name': 'Zara', 'Age': 27}<br/>
print(dic.get('Age'))<br/>
print(dic.get('Sex','Never'))#Never为设置的默认值<br/>
##########################################<br/>
27<br/>
Never
7:has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false
dic = {'Name': 'Zara', 'Age': 27}<br/>
print(dic.has_key('Name'))<br/>
print(dic.has_key('Sex'))<br/>
##########################################<br/>
True<br/>
False
8:items() 函数以列表返回可遍历的(键, 值) 元组数组
dic = {'Name': 'Zara', 'Age': 27}<br/>
print(dic.items())<br/>
##########################################<br/>
[('Age', 27), ('Name', 'Zara')]
9:keys() 函数以列表返回一个字典所有的键
dic = {'Name': 'Zara', 'Age': 27}<br/>
print(dic.keys())<br/>
##########################################<br/>
['Age', 'Name']
10:values() 函数以列表返回字典中的所有值
dic = {'Name': 'Zara', 'Age': 27}<br/>
print(dic.values())<br/>
##########################################<br/>
[27, 'Zara']
11:update() 函数把字典dict2的键/值对更新到dict1里
dict1 = {'Name': 'Zara', 'Age': 7}<br/>
dict2 = {'Sex': 'female' }<br/>
dict1.update(dict2)<br/>
print(dict1)<br/>
##########################################<br/>
{'Age': 7, 'Name': 'Zara', 'Sex': 'female'}
12:字典的遍历
方法一:
dict1 = {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}<br/>
for k,v in dict1.items() :<br/>
print(k,v)<br/>
##########################################<br/>
('Age', 7)<br/>
('Name', 'Zara')<br/>
('Sex', 'female')
方法二:
dict1 = {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}<br/>
for (k,v) in dict1.items() :<br/>
print(k,v)<br/>
##########################################<br/>
('Age', 7)<br/>
('Name', 'Zara')<br/>
('Sex', 'female')
