zoukankan      html  css  js  c++  java
  • pyDay2

    内容来自廖雪峰的官方网站

    1、dict

    为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。

    第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。

    和list比较,dict有以下几个特点:

    1. 查找和插入的速度极快,不会随着key的增加而变慢;
    2. 需要占用大量的内存,内存浪费多。

    而list相反:

    1. 查找和插入的时间随着元素的增加而增加;
    2. 占用空间小,浪费内存很少。

    所以,dict是用空间来换取时间的一种方法。

    dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象

    这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。

    要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

    2、set

    3、pass

    4、tuple

    多个变量可以同时接收一个tuple,按位置赋给对应的值

    >>> x, y = move(100, 100, 60, math.pi / 6)
    >>> print(x, y)
    151.96152422706632 70.0

    5、isinstance

    在写函数的时候,如果有必要,可以先对函数参数的数据类型做检查

     6、raise

    7、默认参数

    定义默认参数要牢记一点:默认参数必须指向不变对象!

    为什么要设计strNone这样的不变对象呢?因为不变对象一旦创建,对象内部的数据就不能修改,这样就减少了由于修改数据导致的错误。此外,由于对象不变,多任务环境下同时读取对象不需要加锁,同时读一点问题都没有。我们在编写程序时,如果可以设计一个不变对象,那就尽量设计成不变对象。

    8、可变参数在函数调用时自动组装为一个tuple

  • 相关阅读:
    ensp抓包只有蓝色的点闪烁没有跳出wireshark
    QuartusII 13.1编译通过,波形仿真报错Error: near "/": syntax error, unexpected '/', expecting ')'
    安装Multisim时出现No software will be installed or removed无法安装
    JavaScript实现页面实时显示时间
    css图片覆盖文字 点击显示文字
    php魔术方法——属性重载方法
    php魔术方法——构造函数和析构函数
    将含有父ID的列表转成树
    分割gbk中文出现乱码的问题解决
    json_encode如何防止汉字转义成unicode
  • 原文地址:https://www.cnblogs.com/xkxf/p/6375801.html
Copyright © 2011-2022 走看看