为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
初识Python_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
  • Python集合添加元素

    1.     append()   总是把元素新增到list尾部

    2.      insert()   可以指定下标

    查看全部
  • dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value:

    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
    print d.values()
    # [85, 95, 59]for v in d.values():    print v# 85# 95# 59

    如果仔细阅读Python的文档,还可以发现,dict除了values()方法外,还有一个 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一样:

    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
    print d.itervalues()
    # <dictionary-valueiterator object at 0x106adbb50>for v in d.itervalues():
        print v
    # 85
    # 95
    # 59

    那这两个方法有何不同之处呢?

    1. values() 方法实际上把一个 dict 转换成了包含 value 的list。

    2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

    3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。

    如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。


    查看全部
    0 采集 收起 来源:迭代dict的value

    2019-03-04

  • 使用 enumerate() 函数:

    >>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
    >>> for index, name in enumerate(L):...     print index, '-', name
    ... 
    0 - Adam
    1 - Lisa
    2 - Bart
    3 - Paul

    使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。但是,这不是 enumerate() 的特殊语法。实际上,enumerate() 函数把:

    ['Adam', 'Lisa', 'Bart', 'Paul']

    变成了类似:

    [(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]


    查看全部
    0 采集 收起 来源:索引迭代

    2019-03-04

  • Python 的 for循环不仅可以用在list或tuple上,还可以作用在其他任何可迭代对象上。

    因此,迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用 for 循环总是可以依次取出集合的每一个元素。

    注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括:
    1. 有序集合:list,tuple,str和unicode;
    2. 无序集合:set
    3. 无序集合并且具有 key-value 对:dict


    查看全部
    0 采集 收起 来源:什么是迭代

    2019-03-04

  • or循环可以嵌套,因此,在列表生成式中,也可以用多层 for 循环来生成列表。

    对于字符串 'ABC' 和 '123',可以使用两层循环,生成全排列:

    >>> [m + n for m in 'ABC' for n in '123']
    ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

    翻译成循环代码就像下面这样:

    L = []for m in 'ABC':
        for n in '123':
            L.append(m + n)


    查看全部
    0 采集 收起 来源:多层表达式

    2019-03-04

  • >>> [x * x for x in range(1, 11) if x % 2 == 0]
    [4, 16, 36, 64, 100]

    有了 if 条件,只有 if 判断为 True 的时候,才把循环的当前元素添加到列表中。


    查看全部
    0 采集 收起 来源:条件过滤

    2019-03-04

  • 复杂表达式

    使用for循环的迭代不仅可以迭代普通的list,还可以迭代dict。

    假设有如下的dict:

    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

    完全可以通过一个复杂的列表生成式把它变成一个 HTML 表格:

    tds = ['<tr><td>%s</td><td>%s</td></tr>' % (name, score) for name, score in d.iteritems()] print '<table>' print '<tr><th>Name</th><th>Score</th><tr>' print '\n'.join(tds) print '</table>'

    注:字符串可以通过 % 进行格式化,用指定的参数替代 %s。字符串的join()方法可以把一个 list 拼接成一个字符串。

    把打印出来的结果保存为一个html文件,就可以在浏览器中看到效果了:

    <table border="1"> <tr><th>Name</th><th>Score</th><tr> <tr><td>Lisa</td><td>85</td></tr> <tr><td>Adam</td><td>95</td></tr> <tr><td>Bart</td><td>59</td></tr> </table>


    查看全部
    0 采集 收起 来源:复杂表达式

    2019-03-04

  • 简洁生成列表

    [x*(x+1) for x in range(1,100,2)]

    查看全部
    0 采集 收起 来源:生成列表

    2019-03-04

  • 要避免 KeyError 发生,有两个办法:

    1.一是先判断一下 key 是否存在,用 in 操作符:如果 'Paul' 不存在,if语句判断为False,自然不会执行 print d['Paul'] ,从而避免了错误。

    2.二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:


    查看全部
    0 采集 收起 来源:Python之访问dict

    2019-03-03

    1. 可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:

    2. 注意: 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。

    查看全部
    0 采集 收起 来源:Python之访问dict

    2019-03-03

    1. 花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。

    2. 由于dict也是集合,len() 函数可以计算任意集合的大小

    3. 注意: 一个 key-value 算一个,因此,dict大小为3。


    查看全部
  • 现在老师只想统计及格分数的平均分,就要把 x < 60 的分数剔除掉,这时,利用 continue,可以做到当 x < 60的时候,不继续执行循环体的后续代码,直接进入下一次循环:

    查看全部
  • tuple和list一样,可以包含 0 个、1个和任意多个元素。

    包含多个元素的 tuple,前面我们已经创建过了。

    包含 0 个元素的 tuple,也就是空tuple,直接用 ()表示:

    >>> t = ()
    >>> print t
    ()

    创建包含1个元素的 tuple 呢?来试试:

    >>> t = (1)
    >>> print t
    1

    好像哪里不对!t 不是 tuple ,而是整数1。为什么呢?

    因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。

    正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:

    >>> t = (1,)
    >>> print t
    (1,)

    Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。

    多元素 tuple 加不加这个额外的“,”效果是一样的:

    >>> t = (1, 2, 3,)
    >>> print t
    (1, 2, 3)


    查看全部
  • 第一个办法是用 list 的 append() 方法,把新同学追加到 list 的末尾:

    >>> L = ['Adam', 'Lisa', 'Bart']
    >>> L.append('Paul')
    >>> print L
    ['Adam', 'Lisa', 'Bart', 'Paul']

    append()总是把新的元素添加到 list 的尾部。

    如果 Paul 同学表示自己总是考满分,要求添加到第一的位置,怎么办?

    方法是用list的 insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素:

    >>> L = ['Adam', 'Lisa', 'Bart']
    >>> L.insert(0, 'Paul')
    >>> print L
    ['Paul', 'Adam', 'Lisa', 'Bart']

    L.insert(0, 'Paul') 的意思是,'Paul'将被添加到索引为 0 的位置上(也就是第一个),而原来索引为 0 的Adam同学,以及后面的所有同学,都自动向后移动一位。


    查看全部
  • Python内置了很多有用的函数,我们可以直接调用。

    要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数 abs,它接收一个参数。

    可以直接从Python的官方网站查看文档:
    http://docs.python.org/2/library/functions.html#abs

    也可以在交互式命令行通过 help(abs) 查看abs函数的帮助信息。


    查看全部

举报

0/150
提交
取消
课程须知
如果您了解程序设计的基本概念,会简单使用命令行,了解中学数学函数的概念,那么对课程学习会有很大的帮助,让您学起来得心应手,快速进入Python世界。
老师告诉你能学到什么?
通过本课程的学习,您将学会搭建基本的Python开发环境,以函数为基础编写完整的Python代码,熟练掌握Python的基本数据类型以及list和dict的操作。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!