儘可能使用sorted不會改變原有數據python
student_tuples = [ ('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10), ] student_objects = [ Student('john', 'A', 15), Student('jane', 'B', 12), Student('dave', 'B', 10), from operator import itemgetter, attrgetter sorted(student_tuples, key=itemgetter(2,1)) # 多關鍵字排序 sorted(student_objects, key=attrgetter('age'), reverse=True) # 逆序
使用zip和map組合code
# -*-coding:utf-8-*- array = [[1, 4], [2, 5], [3, 6]] print map(list, zip(*array))
with open(filename1, 'rb') as fp1, open(filename2, 'rb') as fp2, open(filename3, 'rb') as fp3: for i in fp1: j = fp2.readline() k = fp3.readline() print(i, j, k)
在Python中對象的賦值其實就是對象的引用。當建立一個對象,把它賦值給另外一個變量的時候,python並無拷貝這個對象,只是拷貝了這個對象的引用而已。
淺拷貝:拷貝了最外圍的對象自己,內部的元素都只是拷貝了一個引用而已。也就是,把對象複製一遍,可是該對象中引用的其餘對象我不復制
深拷貝:外圍和內部元素都進行了拷貝對象自己,而不是引用。也就是,把對象複製一遍,而且該對象中引用的其餘對象我也複製。對象
import copy a=[[1],[2]] b=copy.deepcopy(a)
pip freeze排序
import numpy as np matrix = [[0]*5 for i in range(5)] data = np.arange(3*4*5).reshape(3,4,5) [[map(str,a) for a in b] for b in data]