-
迭代在Python中,就是 for 循环。就是依次取出集合的每一个元素。 集合是指包含一组元素的数据结构,包括: 1. 有序集合:list,tuple,str和unicode; 2. 无序集合:set; 3. 无序集合并且具有 key-value 对:dict。 Python中,迭代永远是取出元素本身,而非元素的索引。 对于有序集合,元素确实是有索引的。想在 for 循环中拿到索引,用 enumerate() 函数。 如:for index, name in enumerate(L): ... print index, '-', name ← 迭代的每一个元素实际上是一个tuple 索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。 zip()函数可以把两个 list 变成一个 list range(x, y):生成x到y-1的值。 如果希望迭代 dict 对象的value,可以用 values() 方法(或者itervalues())。 如:for value in d.values(): ... print value values() 方法实际上把一个 dict 转换成了包含 value 的list。 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。 迭代dict的key和value,用 items() 方法。把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value 如:for key, value in d.items(): ... print key, ':', value items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。查看全部
-
list 的表示是name(x)查看全部
-
相当java多维数组查看全部
-
Python 有严格的字符跟缩进要求查看全部
-
key不能重复,那这里将分数作为key是否表示分数不能重复?例如有两个人考了80分。 那么就通过值来查询key,方法如: for key,value in d.items(): if(value==80): print key查看全部
-
Python严格要求缩进查看全部
-
经常取指定索引范围的操作,可以对list进行切片。 如:L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。。。如果第一个索引是0,还可以省略。。。 L[:]表示,从头到尾,实际上复制出了一个新list。 L[::2]第三个参数表示每N个取一个,会每两个元素取出一个来,也就是隔一个取一个。 把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple。 倒序切片:从倒数第几个元素开始切片。倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引 字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作。查看全部
-
注意使用print查看全部
-
L = [] x=1 while x<100: L.append(x*x) x+=1 print sum(L) 1.先用循环确定区间 2.然后用append依次加入元素 3.完事x加1,进入下一次循环 * sum()函数接受一个list作为参数查看全部
-
系统函数 http://docs.python.org/2/library/functions.html#abs 调用函数的时候,如果传入的参数数量或者类型不对,会报TypeError的错误 自定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后在缩进块中编写函数体,函数的返回值用 return 语句返回。如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。return None可以简写为return。 # math包提供了sin()和 cos()等函数,使用时,用import引用它 Python的函数返回多值,用逗号隔开,实际上就是返回一个tuple 使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。 定义默认参数,例:def A(args='b'): 定义可变参数,可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数,例:def A(*args):。。。(Python解释器会把传入的一组参数组装成一个tuple传递给可变参数)查看全部
-
set 不重复无需序列。创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素。如:set(['A', 'B', 'C'])。 访问、遍历set:用 in 操作符判断是否存在。 len():计算元素个数;add():添加元素(set会自动去掉重复的元素);remove():删除元素(remove不存在元素会报错);查看全部
-
dict无序序列:{key:value,key:value,...},key不能重复!!!作为 key 的元素必须不可变,如:Python的基本类型(字符串、整数、浮点数),但是list是可变的,就不能作为 key。。。最后一个key:value的逗号可以省略。。。更新时直接用key去更新(不存在追加,存在覆盖更新)。。。类似java里的HashMap dict也是集合,len() 函数可以计算任意集合的大小 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。 避免 KeyError 发生,有两个办法: 一是先判断一下 key 是否存在,用 in 操作符: 二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None: dict占用内存大,查找速度极快 list占用内存小,查找速度慢,随元素的增加而减慢查看全部
-
注意: else 后面有个“:”。查看全部
-
缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。 注意: if 语句后接表达式,然后用:表示代码块开始。 如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车:查看全部
-
Python代码的缩进规则。具有相同缩进的代码被视为代码块,通常用4个空格表示,不实用Tab。 if 语句后接表达式,然后用:表示代码块开始,else后也需要加:,elif 意思就是 else if for name in list/tuple: while 表达式: while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。 可以使用 break 语句直接退出循环,用continue跳过后续循环代码,继续下一次循环查看全部
举报
0/150
提交
取消