札记

  博客园  :: 首页  :: 新随笔  ::  :: 订阅 订阅  :: 管理

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)]

posted on 2015-11-12 18:40  小泥巴2008  阅读(266)  评论(0编辑  收藏  举报