-
开始学习python个人记录笔记使用,如果有能帮助到他人的地方也算好事
python零基础开始学习,首先在网上找到慕课网免费学习资料,看了“初始pytho”和“python进阶”,大多是文字概念,了解下基础比较好,以下是记录的笔记。后在网上找到一些学习视频打算后续开始看视频,想看视频的可以下载看看https://blog.csdn.net/ygcxydzx/article/details/79483571(转载地址)
- 笔记记录
1、List
定义:Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
以方括号“[]”将集合所有元素包括在内,python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型。例如
L = ['Adam',95.5,'Lisa',85,'Bart',59],其中包含name、score字符串和浮点型
访问方式:
索引:按照索引正序方式访问,和C语言一致 print L[0] >>>Adam ;
按照索引逆序方式访问,L[-2] 代表倒数第二个 >>> Bart [-1]倒数第一个元素;
使用索引时,千万注意不要越界
增删改元素:
append()总是把新的元素添加到 list 的尾部,例如L.append('Abc')
insert(pos,data)它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素,例如L.insert(1,'Efg')向list中第二个元素位置插入‘Efg’
pop()方法总是删掉list的最后一个元素,并且它还返回这个元素;也可以填写要删除的索引号,例如L.pop(2),删除第三个位置上的元素
替换即修改,指定元素位置进行修改,L[1]=90,将原有95.5->90,和访问对应支持正序、逆序
2、tuple
创建tuple和创建list唯一不同之处是用( )
替代了[ ],
一旦创建完毕,就不能修改
不支持增删改,只能访问通过T[0]、T[1]访问第一、二元素。注意:单元素 tuple 要多加一个逗号“,”例如t = ('Adam',),因为()可以为tuple也可以为运算符
虽然tuple不可变,但是可将list作为tuple的元素,对list进行增删改操作是可以的,因为变的是list,例如t = ('a', 'b', ['A', 'B']),元素2就是一个list,l=t[2],l[0] l[1]是允许操作的
3、dict
英文词典,顾名思义通过key-value形式存储;
特点:dict的第一个特点是查找速度快,数据量不应速度,占用内存大,而list随数据增多而变慢,但占用内存小
dict的第二个特点就是存储的key-value序对是没有顺序的!由于dict是按 key 查找,所以,在一个dict中,key不能重复。
使用花括号{},将所有元素包含在内d = {'Adam': 95,'Lisa': 85,'Bart': 59}
访问方式:一、list使用索引范围,dict使用key访问,例如d['Bart'],输出是value 59
二、get(key),python提供get方法,例如d.get('Bart'),输出value同样是 59,不存在‘Bart’则数据None
更新:
如果是没有的数据,按照key-value存储,如果已有的key则进行更新
d['Paul'] = 72
遍历:
使用for循环可以遍历 dict 的 key:例如:
for key in d:
print key >>>'Adam' 'Lisa' 'Bart'
4、set
set与dict的区别在于它没有value,当程序使用场景不要value只关心key时就可以使用set,同样它是无序,快,消耗内存
使用类似list,s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
访问:
访问 set中的某个元素实际上就是判断一个元素是否在set中,'Bart' in s 返回true,false
遍历:
与dict一致,但是set没有value
更新:
set的add()和remove()
add()已存在的key不会报错,但是remove()不存在的key会报错,所有remove需要先判断 if key in s来删除
5、if-elif-else
if很好理解,注意在条件后加冒号':',一个条件下的执行语句缩进度一致
6、for in
1. 有序集合:list,tuple,str和unicode;
2. 无序集合:set
3. 无序集合并且具有 key-value 对:dict
对有序集合进行遍历:List、tuple,直接遍历出来元素
对无序集合进行遍历:dict、set,遍历出来的是key
L = ['Adam', 'Lisa', 'Bart']
for name in L:
print name
7、while
和 for 循环不同的另一种循环是 while 循环,while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束
8、break continue
break:退出整个循环;continue:退出当前循环
9、函数
返回多值:
python函数可以返回多个值,而实际上返回值是一个tuple类型,多个变量可以同时接收一个tuple,按位置赋给对应的值.
默认参数:
函数的默认参数的作用是简化调用,你只需要把必须的参数传进去;由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面。默认参数在不传入时即为默认值,如果传入则为实际传入值。
可变参数:
如果想让一个函数能接受任意个参数,可变参数的名字前面有个 * 号 *args 可使用 for a in args
10、切片
切片相当于将原有的List、Tuple赋值到另一个List、Tuple上
L[0:3] 表示,从索引0开始取,直到索引3为止,但不包括索引3。如果第一个索引是0,还可以省略
L[:] 只用一个 : ,表示从头到尾
L[::2] 第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个
倒序切片:记住倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引
11、迭代:
注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括:
1. 有序集合:list,tuple,str和unicode;
2. 无序集合:set
3. 无序集合并且具有 key-value 对:dict
迭代永远是取出元素本身,而非元素的索引,可通过 enumerate() 函数获取索引
索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身,例如:
for index, name in enumerate(L):
print index, '-', name
迭代dict的value:
用 for 循环直接迭代 dict,可以每次拿到dict的一个key。如果想迭代value的话,可通过values() 方法和itervalues()方法
1.values() 方法实际上把一个 dict 转换成了包含 value 的list。
2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存
迭代dict的key和value:
和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。
for key, value in d.items():
... print key, ':', value
12、生成列表
[x * x for x in range(1, 11) if x % 2 == 0]条件判断表达式
[x*100 + y*10 + z for x in range(0, 10) for y in range(0, 10) for z in range(0,10) if x == z and x != 0]多层表达式