1 range和xrange的区别

答: range是直接生成一个列表,而xrange是生成一个对象,只要在用的时候在调用,xrange可以在大的列表中开辟的内存块下!

In [8]: range(1,10)
Out[8]: [1, 2, 3, 4, 5, 6, 7, 8, 9]
In [9]: a =xrange(1,10)
In [10]: type(a)
Out[10]: xrange
In [11]: a[0]
Out[11]: 1


2 sort 和sorted的区别

相同点:

a.都是python的内建函数

b.都有排序的功能


异同点:

sort只能对列表(且会修改原 内容 相当于理解linux命令中的 sed -i 效果一样)

sorted 能对列表,字符串,字典进行排序,且不修改原来的元素,只是输出一个排序后的对象值可赋值

如果是字符串,则返回一个各个字母组成的列表形式

如果是列表,则返回默认增的排列形式

如果是字典,则默认返回以key组成的排序列表


总之返回的都是列表


举例吧:

In [15]: l = [3,1,2,8]
In [16]: l.sort()
In [17]: l
Out[17]: [1, 2, 3, 8]
In [18]: d = {1:'a',3:'d',2:'d'}
In [19]: sorted(d)
Out[19]: [1, 2, 3]
In [20]: d
Out[20]: {1: 'a', 2: 'd', 3: 'd'}


In [21]: l ='i love you'
In [22]: sorted(l)
Out[22]: [' ', ' ', 'e', 'i', 'l', 'o', 'o', 'u', 'v', 'y']


许多python初学者,对sort()方法比较糊涂。有的时候会需要一个排序好的列表,而又想保存原有未排序列表,他们会这么操作:
>>> a = [5,7,6,3,4,1,2]
>>> b = a.sort()
>>> print b
None

这个时候问题出现了,变量b得到的是一个空值。那么想要得到排序好的列表,又想保留原列表怎么办呢?列表sorted()方法可以帮你实现。
sorted()方法