list:列表。关于列表主要有创建、访问、添加、删除和替换几方面来看。创建:L=[1,2,3,4,5]访问:分按照索引访问和倒序访问。前者:L[0]=1,L[4]=5;后者:L[-1]=5,L[-5]=1添加:1,直接在最后添加:L.append()例如:L.append(6)则L=[1,2,3,4,5,6]2. L.insert()这个需要输入两个参数(前面参数是索引号,后面是新元素),例如L.insert(0,8)则L=[8,1,2,3,4,5]3,删除:L.pop(),这个是删除最后一个元素;如果删除某个位置的元素,只需要在()中输入索引号即可。如:L.pop(0)则L=[2,3,4,5]4,替换:想替换哪个位置的元素,只需要L[xx]其中xx就是替换的元素的索引号。例如:L[1]='Adam'则L=[1,'Adam',3,4,5]
tuple:元组。创建tuple例如:t=(1,2,3)注意:单元素的tuple必须要在元素后面添加“,”,例如:t=(1,)查看tuple只需要t[xx]其中xx表示元素的索引号。tuple是不可变的,一旦创建便不可修改。
dict:字典。关于dict主要有创建、访问、添加和遍历几方面来看。创建:dict={'A':1,'B':2,'C':3}前面的为Key后面的问Value,dict就是有Key:Value组合成的。可以通过Key来查找Value。访问:d[key]访问时必须保证key是在dict中的。例如:print d['A']=1;key在不在dict中需要判断(一般都使用dict提供的get方法即可),例如:print d.get('A')返回1;如果输入的key不存在dict中,那么print d['p']返回的是None。注意:dict的特点:无序,key必须是不可变。更新(添加):直接用赋值语句即可。例如:d['M']=4则print d返回的可能是{''C':3,'M':4,A':1,'B':2}因为dict是无序的,所以返回的顺序也是不确定的。遍历:dict={'A':1,'B':2,'C':3使用for即可for key in d: print key则返回的是对应的key值:ABC
set:如果只需要dict中的key,可以使用set。创建:s=set{['A','B','C']}注意:set也是无序的,而且set不能包含重复的元素。访问:直接使用in来判断元素是否在set中即可。遍历:使用for key in s:更新:添加元素使用s.add()例如:s.add('D')删除元素使用s.remove('A')。注意:删除需要先判断元素是否在set中,否则会报错。
函数:包括调用、编写函数。调用:python内置很多函数,可以直接调用。可以直接从Python的官方网站查看文档: http://docs.python.org/2/library/functions.html了解更多内置函数。编写:使用def例如:def my_abs(x): if x >= 0: return x else: return -x(格式:def 函数名 ():)注意:1,定义默认参数,默认参数只能定义在必需参数的后面。例如:(world就是默认参数,当没有参数输入时,直接返回:Hello,world.;当有参数输入时,返回Hello,Bart.)def greet(name='world'): print 'Hello,'+name+'.'greet()greet('Bart')2.定义可变参数:函数参数都是用*args表示。例如:def average(*args): sum = 0.0 if len(args) == 0: return sum for x in args: sum = sum + x return sum / len(args)print average()print average(1, 2)print average(1, 2, 2, 3, 4)
切片:对list进行切片其实就是取一个list的部分元素。切片格式一般如下:L[0:3]表示取L的前三个元素,不包括L[3];也可简写为L[:3].L[:]表示从头取到尾,实际就是复制了一个L如果想要每隔两个元素取一次,则可以在第三个位置添加间隔数,例如:L[0:10:2]例如:L = range(1, 101)print L[0:10]print L[2::3]print L[4:50:5]其实就是:利用切片,分别取出L中1. 前10个数;2. 3的倍数;3. 不大于50的5的倍数。上面的切片方法对于tuple、字符串等同样适用。倒序切片就是从后往前进行切片。例如:L = range(1, 101)print L[-10:]print L[-46::5]其实就是利用倒序切片对 1 - 100 的数列取出:* 最后10个数;* 最后10个5的倍数。
迭代:利用for循环遍历list或者tuple等任何可迭代的对象的过程就是迭代。索引迭代:迭代永远是取出元素本身,而非元素的索引。那么,可以使用enumerate()函数来同时得到索引和元素。 L = ['Adam', 'Lisa', 'Bart', 'Paul'] for index, name in enumerate(L): print index, '-', name 0 - Adam 1 - Lisa 2 - Bart 3 - Paul实际上,enumerate() 函数把:L=['Adam', 'Lisa', 'Bart', 'Paul']变成了:L=[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]迭代dict的value:有两个方法values()和itervalues()。关于两者的区别如下:1. values() 方法实际上把一个 dict 转换成了包含 value 的list。2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。3. 打印 itervalues() 发现它返回一个
列表生成式:列表生成式可以用一行语句代替通过繁琐的循环方式生成list:[x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]这种写法就是Python特有的列表生成式。利用列表生成式,可以以非常简洁的代码生成 list。
复杂表达式:使用for循环的迭代不仅可以迭代普通的list,还可以迭代dict。假设有如下的dict:d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }完全可以通过一个复杂的列表生成式把它变成一个 HTML 表格:tds = ['
Name | Score |
---|---|
Name | Score |
---|---|
Lisa | 85 |
Adam | 95 |
Bart | 59 |
条件过滤:列表生成式的 for 循环后面还可以加上 if 判断。通过判断来进行筛选。例如:如果我们只想要1-10之间偶数的平方,可以加上 if 来筛选:[x * x for x in range(1, 11) if x % 2 == 0] 返回的是:[4, 16, 36, 64, 100]
多层表达式:for循环可以嵌套,因此,在列表生成式中,也可以用多层 for 循环来生成列表。对于字符串 'ABC' 和 '123',可以使用两层循环,生成全排列:[m + n for m in 'ABC' for n in '123'] 返回的是:['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
如果认为本经验对您有所帮助,请点击下面【投票】支持小编!如果您想以后随时浏览请点击下面的【收藏】,如果认为本经验能够帮助到您的朋友,请点击页面右边双箭头分享。