一,容器、类型、对象
1.列表元素和字典自变量可以多行输入,没有任何元素时是不可以的;
例如:In [75]: l1 = [1,
....: 2,
....: 3,
....: ]
In [76]: print l1
[1, 2, 3]
2.所以对象都有引用计数
分配新名称会增加计数,删除对象引用则会减少计数;
例如:In [78]: name = "black"
In [79]: import sys
sys sysconfig syslog
In [79]: import sys
In [80]: sys.
sys.api_version sys.exit sys.last_traceback sys.ps2
sys.argv sys.exitfunc sys.last_type sys.ps3
sys.builtin_module_names sys.flags sys.last_value sys.py3kwarning
sys.byteorder sys.float_info sys.long_info sys.setcheckinterval
sys.call_tracing sys.float_repr_style sys.maxint sys.setdlopenflags
sys.callstats sys.getcheckinterval sys.maxsize sys.setprofile
sys.copyright sys.getdefaultencoding sys.maxunicode sys.setrecursionlimit
sys.displayhook sys.getdlopenflags sys.meta_path sys.settrace
sys.dont_write_bytecode sys.getfilesystemencoding sys.modules sys.stderr
sys.exc_clear sys.getprofile sys.path sys.stdin
sys.exc_info sys.getrecursionlimit sys.path_hooks sys.stdout
sys.exc_type sys.getrefcount sys.path_importer_cache sys.subversion
sys.excepthook sys.getsizeof sys.platform sys.version
sys.exec_prefix sys.gettrace sys.prefix sys.version_info
sys.executable sys.hexversion sys.ps1 sys.warnoptions
In [80]: sys.get
sys.getcheckinterval sys.getfilesystemencoding sys.getrefcount
sys.getdefaultencoding sys.getprofile sys.getsizeof
sys.getdlopenflags sys.getrecursionlimit sys.gettrace
In [80]: sys.getre
sys.getrecursionlimit sys.getrefcount
In [80]: sys.getrefcount(name)
Out[80]: 2
In [94]: hello="black"
In [95]: sys.getrefcount(name)
Out[95]: 3
In [96]: del(hello) //删除对象引用减少计数
In [97]: sys.getrefcount(name)
Out[97]: 2
3.列表和字典都支持两种类型的复制操作
浅复制:创建一个新对象,包含的原来的对象引用,指向的是同一个位置;
深复制:创建一个新对象,递归复制原来包含的所有对象;
深复制可使用copy模块中的deepcopy()实现。
4.Python中的所以对象都是“第一类的”
这意味着使用标识符命名的所有对象都具有相同状态,于是,能够命名所以对象都可以直接当数据进行处理。
例如:In [6]: a = 4.0
In [7]: b = 3
In [8]: a / b
Out[8]: 1.3333333333333333
In [9]: a // b
Out[9]: 1.0
5.所有序列都支持迭代
序列是索引为非负整数的有序对象的集合;
序列可以修改,支持原处的插入、替换、删除等操作;
字串和元组不支持原处修改,但序列和元组能包含任意的Python对象序列(容器的特性);
6.所有序列都支持的操作
s[i]
s[i:j]
s[i:j:stride]
len(s)
max(s)
min(s)
sum(s)
all(s)
any(s)
s1 + s2 : 连接
s1 * N : 重复
obj in s1 :成员关系判断
obj not in s
7.可变序列的操作,操作本身
s1[index] = value :元素赋值
s1[i:j] = t :切片赋值
del s1[index]
del s1[i:j]
del s1[i:j:stride]