模块:
python中模块是很重要的概念,在模块中加入
if __name__ == "__main__": pass
会使模块应用起来更加灵活,避免出错。
==================================
字典dictionary:
python 字典中元素是无序的,并且对于键来说是大小写敏感的。
向字典添加元素:直接写dic['new'] = 'new'
del dic['new'] 删除一个元素
dic.clear() 清空dic,返回一个空dic,打印出的是:{}
==================================
列表list:
列表中元素有序。负的索引可以理解为:数轴上0-5个数,list[0]往前就是list[-1],对应最后一个。也可以理解为list[-n] 就是倒数第n个元素。
列表切片slice:list[0:3] 返回一个新的list2,新的list2是从list[0]开始,到list[2]结束,也就是说list2不包含list[3]。
列表切片也可以简写,list[:3] 等同于list[0:3] ,list[3:] 等同于 list[3:len(list)],list[:]返回的是全部元素。注意,所有slice返回的都是新的list
向列表添加元素:list.append('new'),在list末尾添加新元素。list.insert(2, 'new'),在索引2插入new,这样一来,打印list[2]就是new了。注意,insert中给的索引超出原有list范围的话默认是给到最后一个索引,比如
l = ['a', 'b'] l.insert(5, 'c')
这样想在5的位置插入'c',但实际上是将'c'插在了2的位置上。list[2]应该是'c',而打印list[5]会报错,IndexError : list index out of range。
list.extend(list2):把list2连接到list后边。
l = ['a', 'b'] l2 = ['c', 'd'] l.extend(l2)
这样l就成了['a', 'b', 'c', 'd'],而l2没变,还是原来的l2。
注意:append和extend都是追加,也都是接受一个参数,但是append接受任意类型参数,然后只简单的给原list扩充一个元素。而extend则接受一个list类型的参数,然后将其连接到原list后。
列表查找:list.index('xxx'),返回'xxx'在list中首次出现的位置。如果xxx不在list中,那么会抛出异常,可用 in 来检测:
#在其中返回True,不在其中返回False if 'xxx' in mylist: return 'yes' else: return 'no'
删除list元素:list.remove('xxx'),如果xxx在list中有多个,那么只删除首次出现的xxx。list.pop()删除最后一个元素并返回删除的元素,可理解为弹栈操作。
与list有关的运算符:list + list2,是将list2连接在list后面,但与extend不同的是,+ 运算符返回的是一个新的list,而extend是在list的基础上添加list2,所以建议使用extend,有其实list很大的时候。