python数据结构

创建列表
a = [1, ‘2’, 3, 4]
b = list([1, 2, 3])

索引和切片
a[0] # 访问第一个元素
a[-1] # 访问最后一个元素
a[:2] # 第一个到第二个元素,开始位置包含,第三个不包含
a[0:] #全输出
a[::] #全输出
a[::3] # 第一位和第四位 步长为3
a[::-1] # 倒序

列表操作
a = [1, 2, 3]
b = [4, 5, 6]
a + b
c = list(‘python’)
a + c
a * 3
使用in判断元素是否在列表里面
1 in a
5 in a
删除某个元素
del a[2] 删除a中第二个元素
del a 把a给删了
改变列表元素
a[2:5] = [3, 4, 5]
内置函数
max(a)
min(a)
len(a)

列表的方法
a.append(6) # 在列表末尾追加新的元素
print(a)
a.extend([7, 8, 9]) #在列表末尾一次性追加另一个列表
print(a)
a.count(2) # 统计2出现的次数
a.index(2) # 找到2第一次出现的索引
a.insert(0, ‘Italy’) # 将对象插入列表中
a.pop(0) #删除列表中的元素,第一个
a.pop() # 移除最后一个元素
a.remove(‘Italy’) # 移除某个值第一个匹配项
a.reverse() # 反向存放

元组访问与列表一样
a = (1, 2, 3)
a[0]
a[::-1]
a[2] = 4 # 修改则报错
a.count(2)#计数
元组可以进行合并,不能用extend,append
a = (1, 2, 3)
b = (4, 5, 6, 7)
c = a + b
当对元组变量表达式进行赋值,会将右侧的值进行拆包复制给对应的对象,即元组拆包
a1, a2, a3, a4, a5, a6, a7 = c
print(a1, a3)

d = {“Name”: ‘Michael’, ‘Gender’: ‘Male’, ‘Age’: 15, ‘Height’: 68}
d[‘Name’]
len(d)
d[‘city’] = ‘chengdu’ # 将值chengdu关联到键city上
del d[‘city’] # 删除
d[23] = ‘Hello World’
访问键gender的值
d.get(“gender”, ‘1’) # 访问键gender的值,没有gender,#返回1

将字典所有项以列表方式返回
d.items()
d.keys() 返回d中的键
d.values() 返回d的值

循环打印字典
for key in d.keys():
print (key,’=>’,d[key])
for k,v in d.items():
print (k,v)

a1 = set([1, 2, 3, 1, 4, 5, 3, 7, 8, 9])
a2 = {1, 1, 3, 3, 4, 4, 3, 3, 5, 6}
a1 - a2 # 返回包含在a1但不包含在a2中的集合
a1 | a2 # a1和a2的并集
a1 & a2 # a1和a2的交集
a1 ^ a2 # 即集合a1与a2的全部唯一元素去除集合a1和a2的公共元素,集合的异或,返回只被a1包含或者a2包含的元素集合
(a1 | a2)-(a1 & a2)==a1 ^ a2
a1 > a2 # 如果x真包含y,则返回True否则返回False

集合常见方法
a1.add(10) # 增加元素
a1.remove(10) # 删除元素
{1}.issubset(a1) # 判断1是否在a1中
a1.union(a2) # a1和a2并集
a1.intersection(a2) # a1和a2交集
a1.difference(a2) # a1 -a2
a1.symmetric_difference(a2) # a1^a2

[x*2 for x in range(1,8)] # 1到7,每个数乘2

string = [‘china’,‘japan’,‘USA’,‘uk’,‘france’,‘Germany’]
#从string中找出长度大于2的字符并将其转换为大写
upper_string= [x.upper() for x in string if len(x) >2]

names = [[‘Abby’,‘Angelia’,‘Tammy’,‘Barbara’,‘Beata’,‘Andrew’,‘Carina’,‘Stacy’,‘kelvin’],[‘Hannah’,‘Ishara’,‘Heidi’,‘Tiffany’,‘Jessica’,‘Joanna’,‘Rebecca’]]
#将名字带有两个以上’a’字母的名字放入一个新的列表中
[n1 for n2 in names for n1 in n2 if n1.count(‘a’)>=2]
集合推导式
string = [‘China’,‘Japan’,‘USA’,‘UK’,‘France’,‘Germany’]
string_len = {len(x) for x in string}
字典推导式
mapping = {val:index for index,val in enumerate(string)}
mapping = dict((val,index) for index, val in enumerate(string))
enumerate枚举

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值