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

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

  1. #堆栈,后进先出
  2. a=[10,11,23,45,46];
  3. a.append(1);
  4. print(a);
  5. a.pop();
  6. print(a);
  7.  
  8. #队列,先进先出
  9. from collections import deque;
  10. queue = deque([1, 5, 4]);
  11. queue.append(6);
  12. queue.append(3);
  13. queue.popleft();
  14. print(queue);
  15.  
  16. squares=[];
  17. for a in range(10):
  18. squares.append(a**2);
  19. print(squares);
  20.  
  21. #浅拷贝
  22. newsquares=squares.copy();
  23. print(newsquares);
  24.  
  25. #map循环执行
  26. arra = list(map(lambda x: x**2, range(10)));
  27. print(arra);
  28.  
  29. d=[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y];
  30. print(d);
  31.  
  32. #等同于下面
  33. m=[];
  34. for i in range(10):
  35. for j in range(10):
  36. if(i!=j):
  37. m.append((i,j));
  38. print(m);
  39.  
  40. z=[x**2 for x in range(6)];
  41. print(z);
  42.  
  43. #得到[[1, 2, 8], [2, 3, 9], [3, 5, 0]]
  44. zoom=[[1,2,3],[2,3,5],[8,9,0]];
  45. zo=[];
  46. for o in range(3):
  47. zo.append([ row[o] for row in zoom])
  48. print(zo);
  49.  
  50. #如果用传统的循环,将会是下面这样
  51. zooms=[[1,2,3],[2,3,5],[8,9,0]];
  52. jms=[];
  53. for o in range(3):
  54. zos=[];
  55. for arra in zooms:
  56. zos.append(arra[o]);
  57. jms.append(zos);
  58. print(jms);
  59.  
  60. #元组
  61. t = 12345, 54321, 'hello!';
  62. print(t);

集合的遍历

  1. #集合型数据的遍历
  2. basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'};
  3. print(basket);
  4.  
  5. arr=[];
  6. arr=[item for item in basket if item != 'apple'];
  7. print(arr);
  8.  
  9. #set来将一个字符串创建一个分散的集合
  10. a = set('abracadabra')
  11. print(a);

#字典的遍历

  1. arra={"a":"xeeig","b":"fe34","age":34, "ddress":"shanghai"};
    print(arra);
  2.  
  3. #如何获得字典的键集合
    print(list(arra.keys()));
    print(arra["a"]);
    print(sorted(arra.keys()));
  4.  
  5. b=[('c',1),('m',2),('n',3)];
    arr=dict(b);
    print(arr);
  6.  
  7. #遍历字典
    y={x:x**3 for x in range(4,12)};
    print(y);
  8.  
  9. y1=dict(sanpge=23,ge=45);
    print(y1);
  10.  
  11. #得到的是键和对应的值
    for k,v in arra.items():
          print(k,v);
  12.  
  13. #得到是索引值和键
    for j,l in enumerate(arra):
          print(j, l);
  14.  
  15. #同时遍历两个序列 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))
  16.  
  17. #正向排序      
    for i in range(1, 10, 2):
          print(i);
  18.  
  19. #反向排序
    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));
  20.  
  21. 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)]

python学习之数据结构的更多相关文章

  1. python学习4—数据结构之列表、元组与字典

    python学习4—数据结构之列表.元组与字典 列表(list)深灰魔法 1. 连续索引 li = [1,1,[1,["asdsa",4]]] li[2][1][1][0] 2. ...

  2. 从0开始的Python学习012数据结构&对象与类

    简介 数据结构是处理数据的结构,或者说,他们是用来存储一组相关数据的. 在Python中三种内建的数据结构--列表.元组和字典.学会了使用它们会使编程变得的简单. 列表 list是处理一组有序的数据结 ...

  3. Python学习笔记——数据结构和算法(一)

    1.解压序列赋值给多个变量 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量. 唯一的前提就是变量的数量必须跟序列元素的数量是一样的. >>> data ...

  4. Python学习笔记——数据结构和算法(二)

    1.字典中一个键映射多个值 可以使用collections中的defaultdict来实现,defalultdict接受list或者set为参数 from collections import def ...

  5. Python学习 Part3:数据结构

    Python学习 Part3:数据结构 1. 深入列表: 所有的列表对象方法 list.append(x): 在列表的末尾添加一个元素 list.extend(L): 在列表的末尾添加一个指定列表的所 ...

  6. Python学习(四)数据结构(概要)

    Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types          int float Text Sequence ...

  7. Python学习-第二天-字符串和常用数据结构

    Python学习-第二天-字符串和常用数据结构 字符串的基本操作 def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1 ...

  8. python学习5—一些关于基本数据结构的练习题

    python学习5—一些关于基本数据结构的练习题 # 1. use _ to connect entries in a list # if there are no numbers in list l ...

  9. python菜鸟教程学习:数据结构

    列表方法 list.append(x):把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]. list.extend(L):通过添加指定列表的所有元素来扩充列表,相当于 a[len( ...

随机推荐

  1. js 三元表达式 复杂写法

    a = 0 b = 0 a === 0 && (a = 1,b = 2) a === 1 ? (a = 3,alert(b)) : (b = 4) a === 1 || alert(a ...

  2. Spark1.x和2.x如何读取和写入csv文件

    看很多资料,很少有讲怎么去操作读写csv文件的,我也查了一些.很多博客都是很老的方法,还有好多转来转去的,复制粘贴都不能看.下面我在这里归纳一下,以免以后用到时再费时间去查.前端实现文件下载和拖拽上传 ...

  3. windows 安装python3.5启动报错:api-ms-win-crt-runtime-l1-1-0.dll丢失

    下载: api-ms-win-crt-runtime就是MFC的运行时环境的库,python在windows上编译也是用微软的visual studio C++编译的,底层也会用到微软提供的C++库和 ...

  4. shell 中的 eval 及 crontab 命令

    eval eval会对后面的命令进行两遍扫描,如果第一遍扫描后,命令是个普通命令,则执行此命令:如果命令中含有变量的间接引用,则保证间接引用的语义.也就是说,eval命令将会首先扫描命令行进行所有的置 ...

  5. 【转载】User notification 的实现方法

    原帖请看:http://cocoathings.blogspot.com/2013/01/introduction-to-user-notifications-in.html 想要实现如图这样的not ...

  6. HTTP响应代码集合

    用于表示临时响应并需要请求者执行操作才能继续的状态代码.代码说明100(继续)请求者应当继续提出请求.服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分. 101(切换协议 ...

  7. spring security采用基于简单加密 token 的方法实现的remember me功能

    记住我功能,相信大家在一些网站已经用过,一些安全要求不高的都可以使用这个功能,方便快捷. spring security针对该功能有两种实现方式,一种是简单的使用加密来保证基于 cookie 的 to ...

  8. 基于主从复制的Mysql双机热备+amoeba实现读写分离、均衡负载

    读写分离指的是客户只能在主服务器上写,只能在从服务器上读,当然了,这也是要看配置,你可以在主服务器配置读的功能,但是在从服务器上只能读不能写,因为从服务器是基于binlog对主服务器的复制,如果在从服 ...

  9. java处理图片base64编码的相互转换

    转载自http://www.cnblogs.com/libra0920/p/5754356.html 直接上代码 import sun.misc.BASE64Decoder; import sun.m ...

  10. 统计mysql数据库中数据表/字段等数量的sql

    1.查询一个表中有多少个字段: SELECT COUNT(*) FROM information_schema. COLUMNSWHERE table_schema = '数据库名'AND table ...