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

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
  • 一是把新的元素添加到set中,二是把已有元素从set中删除。

    添加元素时,用set的add()方法,删除set中的元素时,用set的remove()方法,删除的元素不存在set中,remove()会报错

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

    2019-03-23

  • 多层表达式

    for循环可以嵌套,因此,在列表生成式中,也可以用多层 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)
     

    任务

    利用 3 层for循环的列表生成式,找出对称的 3 位数。例如,121 就是对称数,因为从右到左倒过来还是 121。

    print [x*100+y*10+x for x in range(1,10) for y          in range(0,10)]            
    查看全部
    0 采集 收起 来源:多层表达式

    2019-03-23

  • 条件过滤

    列表生成式的 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 的时候,才把循环的当前元素添加到列表中。

    任务

    请编写一个函数,它接受一个 list,然后把list中的所有字符串变成大写后返回,非字符串元素将被忽略。

    def  xupper(L):

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

    print  xupper("Hello","world","101")

    提示:

    1. isinstance(x, str) 可以判断变量 x 是否是字符串;

    2. 字符串的 upper() 方法可以返回大写的字母。


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

    2019-03-23

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

    >>> d['Paul'] = 72
    
    如果 key 已经存在,则赋值会用新的 value 替换掉原来的 value
    查看全部
    0 采集 收起 来源:Python更新dict

    2019-03-23

  • 由于dict是按 key 查找,所以,在一个dict中,key不能重复

    存储的key-value序对是没有顺序


    不可变这个限制仅作用于key,value是否可变无所谓

    查看全部
  • 复杂表达式

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

    假设有如下的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>'

    把打印出来的结果保存为一个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-23

  • 默认参数只能定义在必需参数的后面:

    # OK:def fn1(a, b=1, c=2):


    查看全部
  • 生成列表

    生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:

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

    但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:

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

    这种写法就是Python特有的列表生成式。

    写列表生成式时,把要生成的元素 x * x 放到前面,后面跟 for 循环,就可以把list创建出来

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

    2019-03-23

  • 迭代dict的key和value

    dict 对象的 items() 方法,items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value

    和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。


    查看全部
  • 迭代dict的value

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

    dict除了values()方法外,还有一个 itervalues() 方法

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

    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

    2019-03-23

  • 在 for 循环中拿到索引,方法是使用 enumerate() 函数

    索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。

    enumerate() 函数把:

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

    变成了类似:

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

    因此,迭代的每一个元素实际上是一个tuple


    zip()函数可以把两个 list 变成一个 list:

    >>> zip([10, 20, 30], ['A', 'B', 'C'])
    [(10, 'A'), (20, 'B'), (30, 'C')]



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

    2019-03-23

  • tuple是用()括起来的,里面元素不可以修改。

    list是用[]括起来,里面元素可以修改,增减替换

    查看全部
  • pop()删除list的最后个元素,()中参数是索引号,可以删除list指定位置的元素

    查看全部
  • append() 总是把新的元素添加到list的尾部

    insert()接受2个参数,第一个参数是索引号,第二个参数是待添加的新元素

    查看全部
  • 查看全部

举报

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

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