美文网首页
递归,字典和键笔记

递归,字典和键笔记

作者: stalker丨 | 来源:发表于2019-03-26 18:47 被阅读0次

    有一对兔子一个月之后每个月生一对兔子 n年后会有多少对兔子(斐波那契数列)

    def fun(n):

        if n == 1 or n==2:

            return 1

        else:

            return fun(n-1)+fun(n-2)

    x = int(input('请输入经过了多少月'))

    y = fun(x)

    print('%d月共有%d对兔子'%(x,y))

        汉诺塔递归:

    def hanoi(n,x,y,z):

        if n == 1:

            print(x,'-->',z)

        else:

            #将n-1个盘子借助z从x移动到y

            hanoi(n-1,x,z,y)

            #将x最底下的盘子从x移动到z

            print(x,'-->',z)

            #将y上的n-1个盘子借助x移动到z

            hanoi(n-1,y,x,z)

    n = int(input('请输入汉诺塔的层数'))

    hanoi(n,'x','y','z')

        字典和键

    1.字典

    dict1={'字符串':'字符串',......}

    print(dict1['字符串'])

    dict2 = {1:'one',2:'two',3:'three'}

    dict2

    {1:'one',2:'two',3:'three'}

    dict2[2]

    'two'

    dict3 = dict((('f',70),('i',105),('s',115),('h',104),('c',67)))

    dict3

    {'f':70,'i':105,'s':115,'h':104,'c':67}

    dict4 = dict(字符串1='字符串2',字符串3='字符串4')

    dict4

    {'字符串3':字符串4,'字符串1':字符串2}

    ------->字典功能可以类比linux的vi  没有则会创建

    2.键

    >>> dict1 = {}

    >>> dict1.fromkeys((1,2,3))

    {1: None, 2: None, 3: None}

    >>> dict2 = {}

    >>> dict2 = dict2.fromkeys(range(6),'hi')

    >>> dict 2

    {0: 'hi', 1: 'hi', 2: 'hi', 3: 'hi', 4: 'hi', 5: 'hi'}

    keys  values  items

    for eachKey in dict2.keys():

        print(eachKey)

    0

    1

    2

    3

    4

    5

    for eachValue in dict2.values():

        print(eachValue)

    hi

    hi

    hi

    hi

    hi

    hi

    for eachItem in dict2.items():

        print(eachItem)

    (0, 'hi')

    (1, 'hi')

    (2, 'hi')

    (3, 'hi')

    (4, 'hi')

    (5, 'hi')

    -----查询是否在字典中-----

    >>> 5 in dict2

    True

    >>> 7 in dict2

    False

    ----清空字典-----

    dict2.clear()

    -----字典拷贝----

    dict3 = dict2.copy()

    --------从字典中弹出一个数------

    >>> dict2 

    {0: 'hi', 1: 'hi', 2: 'hi', 3: 'hi', 4: 'hi', 5: 'hi'}

    >>> dict2.pop(2)    ----->指定弹出哪个位置的数

    'hi'

    >>> dict2.popitem()    ------>随机弹出一个位置的数

    (5, 'hi')

    >>>

    ------在字典的一个随机位置加入一个对应的值----

    >>> dict2

    {0: 'hi', 1: 'hi', 3: 'hi', 4: 'hi'}

    >>> dict2.setdefault(9,'hello')

    'hello'

    >>> dict2

    {0: 'hi', 1: 'hi', 3: 'hi', 4: 'hi', 9: 'hello'}

    >>>

    -------在字典中通过映射更新一个数据的值------

    >>> dict2

    {0: 'hi', 1: 'hi', 3: 'hi', 4: 'hi', 9: 'hello'}

    >>> dict3 = {'9':'hi'}

    >>> dict2.update(dict3)

    >>> dict2

    {0: 'hi', 1: 'hi', 3: 'hi', 4: 'hi', 9: 'hello', '9': 'hi'}

    >>>

    ---------------------集合-------------------

    集合中没有重复的元素

    #如何创建集合

    1.直接用花括号把一堆元素括起来

    2.用set()函数

    set1 = set([1,2,3,4,5,5])

    #将列表中重复元素删除

    1.直接在列表中进行追加

    num1=[1,2,3,4,5,5,3,1,0]

    temp = []

    for each in num1:

        if each not in temp:

            temp.append(each)#如果each在temp中没有 则对temp进行追加

    2.集合的方法

    num1 = list(set(num1))

    num2 = frozenset([1,2,3,4,5]) #不可变集合

    相关文章

      网友评论

          本文标题:递归,字典和键笔记

          本文链接:https://www.haomeiwen.com/subject/rvvnvqtx.html