''' 分析: 1.列表解析:迭代机制的一种应用 语法: [expression for iter_val in iterable] [expression for iter_val in iterable if cond_expr] 2.zip函数:以可迭代的对象作为参数,将对应元素打包成一个元组,形如:zip([a,b],[c,d])→[(a,c),(b,d)] dict函数:可以以可迭代方式创建字典,形如:dict([(a,b),(c,d)])→{a:b,c:d} ''' A0 = dic…
转自 http://www.cnblogs.com/BeginMan/p/3164937.html 一.列表解析 列表解析来自函数式编程语言(haskell),语法如下: [expr for iter_var in iterable] [expr for iter_var in iterable if cond_expr] 第一种语法:首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算…
def select_d(list,d): # list = sorted(list) sum = {} for i in list: if i+d in list: sum[i] = i+d return sum list = [1,2,3,4,5,6,7,8,9,0,1213,12,31,2,13,21,21,221,11,10] print(select_d(list,2)) 运行结果: {1: 3, 2: 4, 3: 5, 4: 6, 5: 7, 6: 8, 7: 9, 8: 10, 9…
''' 分析: python赋值是通过指针来进行的. 很显然第一.三.四次调用都指向同一个列表,并未完成清空, 第二次调用只是指向了另一个列表,也未完成清空,很显然结果是累计的 结果: [0, 1] [3, 2, 1, 0, 1, 4] [3, 2, 1, 0, 1] [0, 1, 0, 1, 4] [0, 1, 0, 1, 4, 0, 1, 4, 9] ''' def f(x,l=[]): for i in range(x): l.append(i*i) print(id(l),l) f(2)…
#项目:生成随机的测验试卷文件 import random #资料库 capitals = {'北京市':'京','上海市':'沪','天津市':'津','重庆市':'渝','河北省':'冀','山西省':'晋','辽宁省':'辽','黑龙江省':'黑','吉林省':'吉','江苏省':'苏','浙江省':'浙','安徽省':'皖','福建省':'闽','江西省':'赣','山东省':'鲁','河南省':'豫','湖北省':'鄂','湖南省':'湘','广东省':'粤','海南省':'琼','四…
2014-04-29 00:04 题目:给定一个整数数组,找出所有加起来为指定和的数对. 解法1:可以用哈希表保存数组元素,做到O(n)时间的算法. 代码: // 17.12 Given an array of integers and target value, find all pairs in the array that sum up to the target. // Use hash to achieve O(n) time complexity. Duplicates pairs…
题目: def add(n,i): return n+i def test(): for i in range(4): yield i g = test() for n in [1,10,5]: g = (add(n,i) for i in g) print(list(g)) 分析: 我们知道生成器函数和生成器表达式都很"懒",只要你不找它取值它就不执行. 函数从上到下开始执行,一直到13行都没开始,13行list()函数找g要值,9-10行的生成器表达式才开始执行,我们将9-10行拆…
#11.编写程序,输入一个自然数,输出它的二进制.八进制.十六进制表示形式 Num = input("请输入任性自然数:") Num = eval(Num) print("二进制:",bin(Num)) print("八进制:",oct(Num)) print("十六进制:",hex(Num)) #12.简述迭代器和生成器的区别 ''' 迭代器:类中有next和iter方法,可以使用for循环(例:字符串(string),列表…
题目: def demo(): for i in range(4): yield i g = demo() g1 = (i for i in g ) g2 = (i for i in g1) print(list(g1)) print(list(g2)) 分析: 按照生成器表达式和生成器函数不取值不执行的做法 一直到10行list(g1) 找g1取值, 10行list()找7行g1取值 g1找5行g 取值 g找1行生成器函数取值 ,得到g = (0,1,2,3) g1 = (0,1,2,3) l…
''' 分析: 1.知道文件夹名称(假设是形如:E:\\software\\Notepad++),很显然可以通过OS模块去求 2.OS.listdir(sPath),列出文件夹内所有的文件和文件夹,以列表的形式返回(可以迭代) 3.将sPath的路径和求得的文件夹或文件的名字拼接,if判断该路径是否为文件夹,是则递归调用原函数,不是则写入列表 思考: 如果只知道文件夹名字(形如:Notepad++),怎么求得该文件夹的绝对路径,以及该文件夹中所有文件的路径 ''' def print_direc…