新秀篇 ##Python中列表的建立,引用,装饰器的使用##

Python中列表的概念与建立

一.列表的定义:
我们引入一个新的概念:数据机构
数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字或字符,甚至可以是其他数据结构>,在python中,最基本的数据结构是序列,序列中的每个元素匾被分配一个序号–即元素的位置,也称为索引,第一>个索引是0,第二个则是1,以此类推
列表由一系列特定顺序排列的元素组成,你可以创建包含字母表中所有字母,数字或所有家庭成员姓名的列表;也可>以将任何东西加入列表中,其中的元素之间可以没有任何关系

二.列表中元素的增,删,改,查,序:
1.列表中元素的增加
append:在列表的末尾添加元素

#建立一个列表
motorcysles = ['honda','suzuki','yamaha']
print  motorcysles
#添加数据
motorcysles.append('bmw')
print motorcysles

这里写图片描述

insert: 插入数据 在数据编号为3后插入five

num = [1,2,3,4,5,6,7,8]
num.insert(3,'five')
print num

这里写图片描述

extent:把另外一个列表的完整内容追加到当前列表的末尾

motorcysles = ['honda','suzuki','yamaha']
num = [1,2,3,4,5,6,7,8]
motorcysles.extend(num)
print motorcysles

这里写图片描述

2.列表中元素的删除
del:关键字 本质上是将一个变量从内存中删除,依靠数据编号删除数据

motorcysles = ['zzx','dw','ffd']
del motorcysles[1]
print motorcysles

这里写图片描述

pop( ):将列表最后一个元素弹出(删除),只能删除最后一个数据,依次进行

motorcysles = ['zzx','dw','ffd']
print  motorcysles
motorcysles.pop()
print motorcysles

这里写图片描述

remove:将列表内指定数据删除,可以自己指定删除哪个数据,不添加元素默认删除第一个元素

motorcysles = ['zzx','dw','ffd']
motorcysles.remove('zzx')
print motorcysles

**这里写图片描述**

3.列表中元素的修改
将列表中编号为1的数据suzuki改为bmw

motorcysles = ['honda','suzuki','yamaha']
print  motorcysles
motorcysles[1] = 'bmw'
print  motorcysles

这里写图片描述

4.列表中元素的查看
len( )获得列表长度

cars = ['bmw','audi','toyoto','subaru','bmw']
print len(cars)

这里写图片描述

count:可以统计列表中莫一个元素出现的次数

cars = ['bmw','audi','toyoto','subaru','bmw']
print cars.count('bmw')

这里写图片描述

5.列表中元素的排序
sort( )对列表中的元素进行升序排序,尽量不要大小写混合:

cars = ['bmw','audi','kia','toyota']
print cars
cars.sort()
print cars

这里写图片描述

sort(reserse=True):倒序

cars = ['bmw','audi','kia','toyota']
print cars
cars.sort(reverse=True)
print cars

这里写图片描述

sorted:临时对列表进行排序

cars = ['bmw', 'audi', 'kia', 'toyota']
print cars
print sorted(cars)

这里写图片描述

reserse( ):倒着打印列表元素

cars = ['bmw', 'audi', 'kia', 'toyota']
print cars
cars.reverse()
print cars

这里写图片描述

三.列表的for循环:
for:循环语句,对names列表循环取出元素

names = ['jake', 'lily', 'alice']
# print_list:随便起的
for print_list in names:
    print print_list

这里写图片描述

先执行完循环,再进行循环外的操作

names = ['jake', 'lily', 'alice']
for print_list in names:
    print'%s I can waiting for you' % print_list

print 'thank you!'

这里写图片描述

列表for循环练习

# 1.打印数字从1到5
for value in range(1,6):
        print value


# 2.打印数字从1到5,然后把数据归一个列表
nums = list(range(1,6))
print nums


# 3.打印2到10的全部偶数建表
nums = list(range(2,11,2))
#(2,11,2):从2到10中间步长为2
print nums


# 4.建一个列表,打印1到10数字的平方
aquares = []
for values in range(1, 11):
    square = values ** 2
    aquares.append(square)
print aquares

这里写图片描述

Python中的赋值引用:

1.赋值转递内存地址:

#  定义了一个函数,准备了一个叫num变量,引用数字10
#  的内存地址
def test(num):
    print '在函数内部%d 对应的内存地址为%d' % (num,id(num))
# 1.定义了一个数字变量
a = 10
print 'a 变量保存数据内存的地址为%d' % id(a)

test(a)

这里写图片描述

2.返回值的引用:

def test(num):
    print '在函数内部%d 对应的内存地址为%d' % (num,id(num))
    #定义一个字符串变量
    result = 'hello'
    print '函数要返回数据的内存地址时%d' % id(result)
    return result
# 1.定义了一个数字变量
a = 10
print 'a 变量保存数据内存的地址为%d' % id(a)

r = test(a)
print '%s 的内存地址是 %d' %(r,id(r))

这里写图片描述

Python中的函数装饰器的建立与使用:

一.装饰器的定义:
把一个函数当作参数,传递给函数,返回一个加强版的函数,本质上是一个返回函数的函数,在不改变原函数的基础上,给函数增加功能

def func1():
    print 'Have a nice day!'
# 需求:让func1函数的执行结果前面加一串*,
# 但是不改变原函数

# outer()就相当与一个化妆师,将传递进来的
#  参数化妆,然后返回化妆好了的函数
# 这里为什么要有一个形参:因为化妆师可以给每个人化妆
def outer(func):  #func为形参
    def inner():
        print '***************'
        func()

    #  将装饰好的函数返回
    return inner

#  f是func1的加强版本,其实就是inner()
f = outer(func1)   #func1是赋的值
f()

这里写图片描述

def say(age):          #  原函数
    print 'man is %d years old' % age
def outer(func):   #装饰函数 func=say(sge)
    def inner(age):   #进行装饰 inner是装饰过后新函数的名字(对age进行判断,所以括号里要有age)
        if age < 0:  #添加判断,装饰的内容
            age = 0
        func(age)   #等于say(age)
    return inner   #接收装饰好的函数
# 得到了一个化妆过的函数
say = outer(say)
# 要想执行函数,我们还得重新调用新的函数
say(60)

这里写图片描述

二.装饰器的应用:
使用@符号将装饰器应用到函数

def outer(fun):
    def wrapper():
        print '验证信息'
        fun()
        print '!!!!!!!!!!!!!!'
    return wrapper
#  使用@符号将装饰器应用到函数
@outer
def func1():
    print 'func1'
func1()
@outer
def func2():
    print 'func2'
func2()
@outer
def func3():
    print 'func3'
func3()

这里写图片描述

三.通用装饰器:输出内容可进行修改

def outer(func):
    def inner(*args):
        print '%%%%%%%%%%'
        func(*args)
    return inner
@outer
def say(name,age):
    print 'my name is %s,i am %d years old'% (name,age)

say('jake',22)

这里写图片描述

猜你喜欢

转载自blog.csdn.net/china_zgd/article/details/81107862