python数据结构

今天来介绍两种最常用的python数据结构
列表:
1、基础方法
list.append(x) 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。
list.extend(L) 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。
list.insert(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。
list.remove(x) 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
list.pop([i]) 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。
list.clear() 移除列表中的所有项,等于del a[:]。
list.index(x) 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
list.count(x) 返回 x 在列表中出现的次数。
list.sort() 对列表中的元素进行排序。
list.reverse() 倒排列表中的元素。
list.copy() 返回列表的浅复制,等于a[:]。

2、将列表当做堆栈使用
堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)
a=[1,2,3,4]
a.append(5) #放在a列表最后
a.pop() #删除列表中最后一个元素

3、列表推导式
每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。
a=[1,2,3]
[x+1 for x in a] #输出[2,3,4]
[[x,x+1] for x in a] #输出[[1, 2], [2, 3], [3, 4]]
[[x,x+1] for x in a if x>1] #输出[[2, 3], [3, 4]]

vec1 = [2, 4, 6]
vec2 = [4, 3, -9]
[x*y for x in vec1 for y in vec2]
#输出[8, 6, -18, 16, 12, -36, 24, 18, -54]

vec1 = [2, 4, 6]
vec2 = [4, 3, -9]
[vec1[i]*vec2[i] for i in range(len(vec1))]
#输出[8, 12, -54]

字典
1、创建
a = {‘ID’: 1, ‘NAME’: ‘BOB’}
构造函数 dict() 直接从键值对元组列表中构建字典
b=dict([(‘ID’, 4139), (‘NAME’, ‘BOB’)])

2、字典推导式
{x: x**2 for x in (2, 4, 6)}

3、遍历字典
遍历KEY和VALUE
a = {‘ID’: 1, ‘NAME’: ‘BOB’,‘ID’: 2, ‘NAME’: ‘MARY’}
for k, v in a.items():
print(k, v)

遍历KEY
a = {‘ID’: 1, ‘NAME’: ‘BOB’,‘ID’: 2, ‘NAME’: ‘MARY’}
for k in a.keys():
print(k)

遍历VALUE
a = {‘ID’: 1, ‘NAME’: ‘BOB’,‘ID’: 2, ‘NAME’: ‘MARY’}
for v in a.values():
print(v)

遍历两个或更多的序列,可以使用 zip() 组合
questions = [‘ID’, ‘NAME’, ‘favorite color’]
answers = [‘1’, ‘BOB’, ‘blue’]
for q, a in zip(questions, answers):
print(‘What is your {0}? It is {1}.’.format(q, a))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值