• Python之数组


    前言

    由于Python的数据结构较为灵活,长期使用java编程的我,有时候可能就搞混淆了。此时,记录一些骚操作。

    不定长二维数组

    array = [4,65,46,57,5];
    
    array2d = [[]]*len(pages); #创建二维数组 [[], [], [], [],...,[]]
    # print(array2d [0][0])
    print(array2d )
    for i in range(len(array2d )):
        array2d [i]=[];
        pass;
    
    array2d[0].append(46);
    array2d[2].append(35);
    array2d[1].extend([46,68,23,24]);
    
    print(array2d )
    

    排序

    • <数组,字典>的排序 [ {...},...,{...} ]
    array = [
                    {'key':587,'value':'jack'},
                    {'key':364,'value':'jame'},
                    {'key':476,'value':'jane'},
                    {'key':355,'value':'johnny'}
                ]
    
    array = sorted(array , key=lambda x:x['value']) 
    array .sort(array p,q: cmp(p['value'], q['value'])) 
    
    • 排序后基于索引输出
      • 好处:不改变原数组数据
    import numpy as np;
    y =np.array([24242, 43, 6, 46, 46, 4, 6, 4, 546]);
    
    sortResult = np.argsort(y);
    

    删除列表中元素等于某值(eleVal)的所有元素

    def delete(array,eleVal): # 删除指定元素
        idx = -1;
        idx=array.index(eleVal)
        while idx >= 0  :
            del array[idx];
            idx = -1;
            try:
                idx=array.index(eleVal);
            except Exception as e:
                print("[delete] end to remove eleVal '",eleVal,"'!");
            pass;
    
    delete(array,'j');
    

    多维数组转换为一维数组

    articleWords = [['文章', '数学'], ['权力']];
    artcileWords = [i for item in articleWords for i in item]; # 二维词汇矩阵合并为一维数组 # 参考 :https://blog.csdn.net/kevin_7july/article/details/79289814
    
     ## output
     ['文章', '数学', '权力']
    
  • 相关阅读:
    HDU 1003——Max Sum(动态规划)
    HDU 2602 ——背包问题
    HDU 1850——Being a good boy
    HDU——2588 数论应用
    HDU1222——数论
    HDU1465——不容易系列之一(错排)
    URAL 2038 Minimum Vertex Cover
    772002画马尾
    CodeForces 19D Points
    The 2015 China Collegiate Programming Contest Game Rooms
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/10886582.html
Copyright © 2020-2023  润新知