2020-11-23

一.列表推导式

-->列表推导式:需要使用for循环来生成一个新列表时,可用到列表推导式

-->格式:【表达式 for 变量 in 旧列表 if 条件】

-->实例

for循环

lst = [0,1,2,3,4,5,6,7,8,9]

 lst2 = []

 for j in lst:

     if j % 3 == 0:

        lst2.append(j)

print(lst2)

# [0, 3, 6, 9]

列表推导式

new_list = [ifor iin range(0,10)if i %3 ==0]

print(new_list)

# [0, 3, 6, 9]

二.生成器

-->产生:生成器可以一边循环一边进行计算,不用一下子就生成一个很大的集合,占用内存空间。

-->优点 : 生成器的使用节省内存空间。

-->创建:

        1.列表推导式,把一个列表生成式的 [ ] 改成( )

l = [i *3 for iin range(10)]

print(type(l))    <class 'list'>

r = (i *3 for iin range(10))

print(type(r))    <class 'generator'>

-->遍历生成器对象中的内容:

for iin r:

print(i)

0    3    6    9    12    15    18    21    24    27

-->获取元素._next_(),或者next()

print(r.__next__())     #0

print(r.__next__())     #3

print(next(r))      #6

print(next(r))      #9

 2.函数,只要函数中出现yield,函数变成生成器函数,简单来说:只要在def中有yield关键字的 就称为 生成器

def f1():

    num =0

    while True:

            num +=1

    yield num

g = f1()

print(type(g))        //<class 'generator'>

print(g.__next__())         # 1

print(g.__next__())         # 2

print(next(g))             # 3

print(next(g))             # 4

三.迭代器

    迭代:  获取元素

    可迭代对象        1.列表 字典 集合 元组 字符串....           2.生成器

        -->如何判断一个对象是否是可迭代的

        -->isinstance() 判断一个对象是否是另一个对象的实例

import collections

lst = [1,2,3,4]

g = (xfor xin range(10))

print(isinstance(lst, collections.Iterable))    #True

print(isinstance('123', collections.Iterable))    #True

print(isinstance(123, collections.Iterable))    #False

print(isinstance(g, collections.Iterable))    #True

-->迭代器 可以被next()函数调用,并不断返回下一个值的对象

-->可迭代对象  != 迭代器

lst = [1,2,3,4]

print(next(lst))    #'list' object is not an iterator

# 通过iter()函数将可迭代对象编程迭代器

lst =iter(lst)

print(next(lst))        #1

四.面向对象简介

        -->程序运行当中,数据存放在内存中被CPU运行

        -->对象是内存中用来存储数据的一块区域

    对象的结构:    1.id        2.type        3.value

类class

    --> int str list ...python内置对象 ,它们无法满足需求,因此需要自定义对象

class MyClass():

        pass

print(MyClass)        <class '__main__.MyClass'>

a = MyClass

print(type(a))            <class 'type'>


-->对象实例

# 定义一个狗的类

# 在类的代码中,可以定义变量和函数,这些可以被这个类创建出的所有对象访问

# 变量作为这个类的属性(name age ..),函数作为类的方法(run speak...)

# 访问属性 实例。属性名

# 访问方法 实例的函数名()

class Dog():

    # 定义属性

    name ="小黑"

    age ="2"

    # 定义方法

    def run():

        print("running...")

dog1 = Dog                    

print(dog1.name)            # 小黑

print(dog1.age)              # 2

dog1.run()                     # running...

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容