Python基础笔记(实验楼笔记)

一、元组Tuple和列表List区别

1、元组元素不可修改,列表元素可以修改

不可删除元组元素,只能删除整个元组,但列表可以

2、元组只有一个元素时,需要在元素后面加逗号,如:

tup1 = (50,)

二、列表List

1、列表可以当成队列或堆栈使用

2、函数式编程filter(), map(), 以及 reduce()

①filter(function, sequence)返回一个sequence(序列)

eg:

def f(x):return x%2!=0 and x%3!=0
seq = filter(f,range(2,25))
print seq

结果:


②map(function, sequence) 为每一个元素依次调用 function(item) 并将返回值组成一个列表返回

eg:

def cube(x):return 2*x
list = map(cube,range(1,6));
print list

结果:


可以传入多个序列,函数也必须要有对应数量的参数,执行时会依次用各序列上对应的元素来调用函数(如果某些序列比其它的短,就用None来代替)。如果把 None做为一个函数传入,则直接返回参数做为替代

eg:

nseq = range(8)
def add(x,y):return x+y
list = map(add,nseq,nseq)
print list

结果:


③reduce(function, sequence) 返回一个单值,它是这样构造的:首先以序列的前两个元素调用函数 function,再以返回值和第三个参数调用,依次执行下去

eg:

list = reduce(add,range(1,5))
print list

结果:

如果序列中只有一个元素,就返回它,如果序列是空的,就抛出一个异常。可以传入第三个参数做为初始值。如果序列是空的,就返回初始值,否则函数会先接收初始值和序列的第一个元素,然后是返回值和下一个元素,依此类推。

eg:

def sum(deq):
	def add(x,y):return x+y
	return reduce(add,deq,1)

list = sum(range(1,5))
print list

结果:

3、列表推导式

eg:

#普通方式
squares =[]
for x in range(10):
	squares.append(x**2)
print squares
#使用列表推导式
squares = [x**2 for x in range(10)]
print squares

结果:

4、del

删除a数组所有元素

del a[:]

删除整个变量

 del a

三、元组Tuple

1、元组封装与序列拆封

eg:

封装:

 t = 12345, 54321, 'hello!' 

拆封:

 x, y, z = t

四、集合Set

注意:想要创建空集合,你必须使用 set() 而不是 {} 。后者用于创建空字典

五、字典

1、字典的值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组,不可以用List作为key,因为是可变的

2、一对大括号创建一个空的字典: {}

3、dict() 构造函数可以直接从 key-value 对中创建字典:

map = dict([('fruit','apple'),('number',22),('address','GuangDong')])
print map

结果:

4、字典推导式可以从任意的键值表达式中创建字典:

map = {x:x**2 for x in {1,2,3}}
print map

结果:


总结

Python中的数据结构,列表可以用[]符号或list()创建,其中的元素可变,元组可以用()符号或tuple()创建,其中的元素不可变,集合可以用{}或set()创建,其中的元素不可重复,字典可以用dict()或{}符号创建,里面存放的键值对,del语句可以删除这些数据结构其中的元素也可以删除变量。

猜你喜欢

转载自blog.csdn.net/ack_finding/article/details/80867436