标签:
原处修改,快:
第一种方式:
>>> a=[1,2,3]
>>> b=a
>>> a.extend([4,5])
>>> a
[1, 2, 3, 4, 5]
>>> b
[1, 2, 3, 4, 5]
第二种方式:
>>> a=[1,2,3]
>>> b=a
>>> a+=[4,5]
>>> a
[1, 2, 3, 4, 5]
>>> b
[1, 2, 3, 4, 5]
合并:
>>> a
[1, 2, 3]
>>> b=a
>>> a=a+[4]
>>> a
[1, 2, 3, 4]
>>> b
[1, 2, 3]
for遍历字典的两种方式:
>>> d={‘a‘:1,‘b‘:2,‘c‘:3}
>>> for key in d:
... print(key,‘=>‘,d[key])
...
b => 2
a => 1
c => 3
>>> list(d.items())
[(‘b‘, 2), (‘a‘, 1), (‘c‘, 3)]
>>> for (key,value) in d.items():
... print(key,‘=>‘,value)
...
b => 2
a => 1
c => 3
for循环一般都比while计数器循环运行得更快。因为迭代器在python 中是以C语言的速度运行的,而while循环版本则是通过python虚拟机运行python字节码的。
readlines会一次性讲文件读入内存,不适合大文件。
列表以及很多其它的内置对象,不是自身的迭代器,因为他们支持多次打开迭代器。对这样的对象,我们必须调用iter来启动迭代:
>>> l=[1,2,3]
>>> iter(l) is l
False
>>> l.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: ‘list‘ object has no attribute ‘__next__‘
>>> a=iter(l)
>>> a.__next__()
1
>>> next(a)
2
列表解析的两种反式:
慢:
>>> L=[1,2,3,4,5]
>>> for i in range(len(L)):
... L[i]+=10
...
>>> L
[11, 12, 13, 14, 15]
快:
>>> L=[x+10 for x in L]
>>> L
[21, 22, 23, 24, 25]
标签:
原文地址:http://www.cnblogs.com/from0701/p/4673424.html