python要学数据结构吗_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)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值