博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python核心编程-第六章-个人笔记(二)
阅读量:6202 次
发布时间:2019-06-21

本文共 2619 字,大约阅读时间需要 8 分钟。

hot3.png

    3.11.2  in操作符和index()

        先看一段代码

>>> 'record' in music_mediaFalse>>> 'H' in music_mediaTrue>>> music_media.index('Hello')1>>> music_media.index('e')2>>> music_media.index('world')Traceback (most recent call last):  File "
", line 1, in 
ValueError: 'world' is not in list

这里我们发现,index()调用时若给定的对象不在列表中Python会报错,所以检查一个元素是否在列表中应该用in操作符而不是index(),index()仅适用于已经确定某元素确实在列表中获取其索引的情况。

针对上述代码,可以做出如下修改

for eachthing in ('record', 'H', 'Hello', 'e', 'world'):    if eachthing in music_media:        print music_media.index(eachthing)    else:        print '%s is not in %s!!' % (eachthing, music_media)

    3.11.3   关于可变对象和不可变对象的方法的返回值问题

083341_8M1D_2297516.png

3.12  列表的特殊特性

    3.12.1  用列表构建堆栈

# -*- coding:utf-8 -*-stack = []def pushit():    stack.append(raw_input('Enter New string: ').strip())    def popit():    if len(stack) == 0:        print "Cannot pop from an empty stack!"    else:        print 'Removed [', `stack.pop()`, ']'    def viewstack():    print stack    # calls str() internally    CMDs = {'u': pushit, 'o': popit, 'v': viewstack}def showmenu():    pr = '''  p(U)sh  p(o)p   (V)iew  (Q)uit  Enter choice: '''    while True:        while True:            try:                choice = raw_input(pr).strip()[0].lower()            except (EOFError, KeyboardInterrupt, IndexError):                choice = 'q'                        print '\nYou picked: [%s]' % choice            if choice not in 'uovq':                print 'Invalid option, try again'            else:                break         if choice == 'q':            break         CMDs[choice]()    if __name__ == '__main__':    showmenu()

    3.12.2  用列表构建队列

# -*- coding:utf-8 -*-queue = []def enQ():    queue.append(raw_input('Enter New string: ').strip())    def deQ():    if len(queue) == 0:        print 'Cannot pop from an empty queue!'    else:        print 'Removed [', `queue.pop(0)`, ']'        def viewQ():    print queue    # calls str internally    CMDs = {'e': enQ, 'd': deQ, 'v': viewQ}def showmenu():    pr = '''  (E)nqueue  (D)equeue  (V)iew  (Q)uit    Enter choice: '''    while True:        while True:            try:                choice = raw_input(pr).strip()[0].lower()            except (EOFError, KeyboardInterrupt, IndexError):                choice = 'q'                        print '\nYou picked: [%s]' % choice            if choice not in 'edvq':                print 'Invalid option, try again'            else:                break                if choice == 'q':            break        CMDs[choice]()        if __name__ == '__main__':    showmenu()

3.13  元组

①元组用圆括号而列表用方括号

②元组是不可变

转载于:https://my.oschina.net/u/2297516/blog/545848

你可能感兴趣的文章
97 条 Linux 运维工程师常用命令总结
查看>>
SpringCloud SpringBoot mybatis分布式Web应用的统一异常处理
查看>>
智能合约
查看>>
Composite Partitioning Table
查看>>
7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装
查看>>
如何简洁实现游戏中的AI
查看>>
一篇文章教你读懂UI绘制流程
查看>>
08、redis哨兵主备切换的数据丢失问题:异步复制、集群脑裂
查看>>
jvm堆内存溢出后,其他线程是否可继续工作
查看>>
浅析人脸识别的3种模式
查看>>
jdk源码阅读笔记-ArrayList
查看>>
nvm+nodejs+npm环境搭建
查看>>
解决浏览器的XHR跨域请求限制之使用JSONP发起跨域异步请求
查看>>
[喵咪Golang(1)]Go语言开篇
查看>>
OSChina 周一乱弹 —— 你是不是姓胖?
查看>>
OSChina 周五乱弹 ——护目评论,挺想你的。
查看>>
一个程序员的时间管理
查看>>
Spring MVC ajax 的多种方式 (三) dataType
查看>>
LABjs、RequireJS、SeaJS的区别
查看>>
tornado简单实现restful接口1
查看>>