def common_elements(list1, list2): common = [] for item1 in list1: if item1 in list2: common.append( item1 ) 、 return common def common_elements(list1, list2): common = set(list1).intersection(set(list2)) return list(common) my_dict = {'a':1,'b':2} for key in my_dict: print(key, my_dict[key]) my_dict = {'a':1,'b':2} for key, value in my_dict.items(): print(key, value) a,b = ('cat','dog') a,b,c = ('cat','dog','tiger')print(a,b,c) first,*_,end = (1,2,3,4,5,6) print(first,end) first,*middle,end = (1,2,3,4,5,6)print(first,middle,end) (a,b,c) = (c,a,b) if os.path.exists(data_file_path): data_file = open(data_file_path,'r')else: raise OSERRORprint( data_file.read())data.close()
with open(data_file_path,'r') as data_file: print(data_file.read) list1 = range(1,10)list2 = range(10,20)for item1 in list1: for item2 in list1: print(item1*item2) from itertools import product list1 = range(1,10) list2 = range(10,20) for item1,item2 in product(list1, list2): print(item1*item2)
consolidated_list = [('a',1),('b',2),('c',3),('b',4)]items_by_id = {}for id_, item in consolidated_list: if id_ not in items_by_id: items_by_id[id_] = [] if id_ in items_by_id: items_by_id[id_].append(item) 上面代码构建了一个字典,依次向字典中添加信息,如果某个键已经存在,则以某种方式修改该键的值;如果某个键不存在,则添加对应键值对。 from collections import defaultdict items_by_id = defaultdict(list) consolidated_list = [('a',1),('b',2),('c',3),('b',4)]
for id_, item in consolidated_list: items_by_id[id_].append(item) 在此列中,defaultdict()接受一个list作为参数,当键不存在时,则返回一个空列表作为对应值。 有时候我们会遇到统计词频的案例,比如: #统计词频colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']result = {}for color in colors: if result.get(color)==None: result[color]=1 else: result[color] =1print (result)# 输出 {'red': 2, 'blue': 3, 'green': 1} 完全可以用defaultdict()函数实现上面的计数功能: colors = ['red', 'blue', 'red', 'green', 'blue', 'blue'] d = defaultdict(int) for color in colors: d[color] = 1 print(d) 更简单的方法用collections模块的Counter()函数: from collections import Countercolors = ['red', 'blue', 'red', 'green', 'blue', 'blue']c = Counter(colors)print (dict(c)) from os import system system('xcopy e:\\sample.csv e:\\newfile\\') 其实shutil模块更好用: import shutilshutil.copyfile('E:\\q.csv', 'e:\\movie\\q.csv') 因为shutil会很详细地报告错误和异常。 新人躺坑之四:不喜欢使用异常处理 def powers_of_two(max=20000): i = 0 powers = [] while 2**i < max: powers.append[2**i] i = 1 return powers 对于使用次数少、占据大量内存、且容易生成的数据,可以用生成器替代列表存储: from itertools import count, takewhiledef powers_of_two(max=20000): for index in takewhile(lambda i: 2**i < max, count(start=0)): yield 2**index 更多关于生成器的内容,请见: |
|