为了账号安全,请及时绑定邮箱和手机立即绑定

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
学习人数
综合评分9.43
3762人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.2 逻辑清晰
  • 我们可以用 in 操作符判断set中的元素:

    Bart是该班的同学吗?

    >>> 'Bart' in s
    True


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

    2020-03-13

  • set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。

    创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:

    >>> s = set(['A', 'B', 'C'])


    查看全部
  • 直接使用for循环可以遍历 dict 的 key:

    >>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
    >>> for key in d:
    ...     print key


    查看全部
  • 要把新同学'Paul'的成绩 72 加进去,用赋值语句:

    >>> d['Paul'] = 72


    查看全部
    0 采集 收起 来源:Python更新dict

    2020-03-13

  • dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样

    dict内部是无序的,不能用dict存储有序的集合。

    dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。

    查看全部
  • set特点及应用:

    1. set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。

    2. set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。

    3. 最后,set存储的元素也是没有顺序的。

    4. 应用:处理比较多的简单判断时,可以用set。

               比如,判断用户输入是否有效(周一到周日),可以直接设定一个包含周一到周日的set,然后直接判断用户输入是否在set即可。这样省去了判断语句的繁琐。

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

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

    一是先判断一下 key 是否存在,用 in 操作符:

    if 'Paul' in d:
        print d['Paul']

    如果 'Paul' 不存在,if语句判断为False,自然不会执行 print d['Paul'] ,从而避免了错误。

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

    >>> print d.get('Bart')
    59
    >>> print d.get('Paul')
    None


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

    2020-03-13

  • Python的 dict 就是专门干这件事的。用 dict 表示“名字”-“成绩”的查找表如下:

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

    我们把名字称为key,对应的成绩称为value,dict就是通过 key 来查找 value

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

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

    >>> len(d)
    3

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


    查看全部
  • dict的特点:

    1. 查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。

    2. 存储的key-value序对是没有顺序的!这和list不一样,不能用dict存储有序的集合

    3. dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key;不可变这个限制仅作用于key,value是否可变无所谓;

    4. 而它本身是可变的,即可以增减序对:用d[key] = value这个赋值语句可以新增序对,如果key存在,则会把新的value赋值给原来的key

    查看全部
  • 二者之间关系(eg.姓名:成绩)的列表——dict:

    d = {

            key:value,

            `````````

    }

    可以简单地使用 d[key] 的形式来查找对应的 value;如果key不存在,直接使用d[key] 的形式就会报错,这时就可以采用d.get(key)的形式,就会返回None值,不报错。

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

    2020-03-13

  • def toUppers(L):

        return [x.upper() for x in L if isinstance(x,str)]


    print toUppers(['Hello', 'world', 101])


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

    2020-03-13

  • 列表生成式的 for 循环后面还可以加上 if 判断。例如:

    >>> [x * x for x in range(1, 11)]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    如果我们只想要偶数的平方,不改动 range()的情况下,可以加上 if 来筛选:

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

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

    列表生成式的 for 循环后面还可以加上 if 判断。例如:

    >>> [x * x for x in range(1, 11)]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    如果我们只想要偶数的平方,不改动 range()的情况下,可以加上 if 来筛选:

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

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


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

    2020-03-13

  • 在生成的表格中,对于没有及格的同学,请把分数标记为红色。

    提示:红色可以用 <td > 实现。

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

    def generate_tr(name, score):

        if score>=60:

            return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)

        else:

            return '<tr><td>%s</td><td >%s</td ></tr>' % (name, score)


    tds = [generate_tr(name, score) for name, score in d.iteritems()]

    print '<table border="1">'

    print '<tr><th>Name</th><th>Score</th><tr>'

    print '\n'.join(tds)

    print '</table>'


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

    2020-03-13

  • 请根据dict:

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

    打印出 name : score,最后再打印出平均分 average : score。

    • 需要同时对 name 和 score 进行迭代。

      参考代码:

      d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
      sum = 0.0
      for k, v in d.iteritems()/d.items():
          sum = sum + v
          print k, ':', v
      print 'average', ':', sum / len(d)



    查看全部
  • 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循环,而内部如何迭代我们通常并不用关心。


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

    2020-03-13

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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