• python学习之数据结构


    python的数据很丰富,所以对于数据分析来讲, python是一种最合适的选择

    下面讲述一下常见的数据结构,包括栈,队列,元组,字典,集合等,以及对这些数据结构进行操作

    #堆栈,后进先出
    a=[10,11,23,45,46];
    a.append(1);
    print(a);
    a.pop();
    print(a);
    
    
    #队列,先进先出
    from collections import deque;
    queue = deque([1, 5, 4]);
    queue.append(6);
    queue.append(3);
    queue.popleft();
    print(queue);
    
    
    
    squares=[];
    for a in range(10):
        squares.append(a**2);
    print(squares);
    
    #浅拷贝
    newsquares=squares.copy();
    print(newsquares);
    
    #map循环执行
    arra = list(map(lambda x: x**2, range(10)));
    print(arra);
    
    
    d=[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y];
    print(d);
    
    
    #等同于下面
    m=[];
    for i in range(10):
        for j in range(10):
            if(i!=j):
                m.append((i,j));
    print(m);
    
    
    z=[x**2 for x in range(6)];
    print(z);
    
    
    #得到[[1, 2, 8], [2, 3, 9], [3, 5, 0]]
    zoom=[[1,2,3],[2,3,5],[8,9,0]];
    zo=[];
    for o in range(3):
        zo.append([ row[o] for row in zoom])
    print(zo);
    
    #如果用传统的循环,将会是下面这样
    zooms=[[1,2,3],[2,3,5],[8,9,0]];
    jms=[];
    for o in range(3):
        zos=[];
        for arra in zooms:
            zos.append(arra[o]);
        jms.append(zos);         
    print(jms);
    
    
    #元组
    t = 12345, 54321, 'hello!';
    print(t);

     集合的遍历

    #集合型数据的遍历
    basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'};
    print(basket);
    
    arr=[];
    arr=[item for item in basket if item != 'apple'];
    print(arr);
    
    
    #set来将一个字符串创建一个分散的集合
    a = set('abracadabra')
    print(a);

     #字典的遍历

    arra={"a":"xeeig","b":"fe34","age":34, "ddress":"shanghai"};
    print(arra);

    #如何获得字典的键集合
    print(list(arra.keys()));
    print(arra["a"]);
    print(sorted(arra.keys()));

    b=[('c',1),('m',2),('n',3)];
    arr=dict(b);
    print(arr);

    #遍历字典
    y={x:x**3 for x in range(4,12)};
    print(y);


    y1=dict(sanpge=23,ge=45);
    print(y1);

    #得到的是键和对应的值
    for k,v in arra.items():
          print(k,v);

    #得到是索引值和键
    for j,l in enumerate(arra):
          print(j, l);

    #同时遍历两个序列 zip方法
    questions = ['name', 'quest', 'favorite color']
    answers = ['lancelot', 'the holy grail', 'blue']
    for q, a in zip(questions, answers):
          print('What is your {0}?  It is {1}.'.format(q, a))

    #正向排序      
    for i in range(1, 10, 2):
          print(i);

    #反向排序
    for w in reversed(range(1, 10, 2)):
           print(w);
           
    #反向排序
    for w in sorted(range(1, 10, 2)):
           print(w);
    basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'];
    print(set(basket));

    string3 = '', 'Trondheim', 'Hammer Dance';
    print(string3);

    补充:

    a = [[1, 2], [3, 4], [5, 6]]
    不使用任何循环,将上面的嵌套列表转换成单一列表(即组成元素不是列表)
    输出结果应为: [1, 2, 3, 4, 5, 6]
    >>> import itertools
    >>> list(itertools.chain.from_iterable(a))
    [1, 2, 3, 4, 5, 6]



    技巧1:字符串倒置
    >>> a =  "codementor"
    >>> print "Reverse is",a[::-1]
    倒置之后的结果是“rotnemedoc”。
    技巧2:转置矩阵(transposing a matrix)(把矩阵A的行换成相应的列,得到的新矩阵称为A的转置矩阵)
    >>> mat = [[1, 2, 3], [4, 5, 6]]
    >>> zip(*mat)
    [(1, 4), (2, 5), (3, 6)]

  • 相关阅读:
    JS函数
    函数与指针
    函数返回指针类型(strchr函数)
    二维数组求平均值(指针的使用)
    二维数组做函数参数传递
    指针与函数
    Ubuntu安装mysql步骤
    带参程序
    函数返回值是指针
    mystrcat
  • 原文地址:https://www.cnblogs.com/airven/p/4959894.html
Copyright © 2020-2023  润新知