Python中几种数据结构的整理,列表、字典、元组、集合

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

列表:shoplist = ['apple', 'mango', 'carrot', 'banana']

字典:di = {'a':123,'b':'something'}

集合:jihe = {'apple','pear','apple'}

元组: t = 123,456,'hello'

1.列表

空列表:a=[]

函数方法:a.append(3) >>>[3]

a.extend([3,4,5]) >>>[3,3,4,5] 添加一个列表序列

a.insert(1,'hello') >>>[3,'hello',3,4,5]

a.remove(3) >>>['hello',3,4,5] 删除第一个出现的3,没有3则报错

a.pop() >>>['hello',3,4]

a.pop(0) >>>[3,4]

a.index(4) >>>1 返回出现的第一个4的下标

a.count(3) >>>1 列表中元素3的个数

a.sort >>>[3,4] 排序

a.reverse() >>>[4,3] 反序

删除元素的方法

a.remove(3) 通过值删除元素,删除第一个为参数值得元素

a.pop() 通过下标删除元素,默认删除列表最后一个值,带参数则删除下标为参数值的元素

del a[0] 通过下标删除元素,

del a[2:4] 删除a表下标为2,3的元素

del a[:] 删除a列表所有元素

del a 删除列表

列表推导式:

vec = [2,4,6]

[3*x for x in vec if x<6] >>>[6,12] 3*2,3*4

vec2 = [1,2,3]

[x*y for x in vec for y in vec2] >>>[2,4,6,4,8,12,6,12,18]

嵌套列表推导式:

mat = [

[1,2,3],

[4,5,6],

[7,8,9]

]

PRint ([[row[i] for row in mat] for i in [0,1,2]])

>>>[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

思考:list (zip(mat)) 和 list (zip(*mat))结果会有什么不同

2.元组

空元组:t = ()

元组赋值: t = (123,345)

t[0] >>>123

3.字典

d = {'Jack':'jack@mail.com','Tom':'Tom@main.com'}

d['Jack'] >>>'jack@mail.com

d['Jim'] = 'Jim@sin.com' >>>{'Jim': 'Jim@sin.com', 'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}

del d['Jim'] >>>{'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}

list(d.keys()) 将返回一个字典中所有关键字组成的无序列表

sorted(d.keys()) 将返回一个字典中所有关键字组成的排序列表

dict() 构造函数可以直接从key-value对中创建字典

dict([('Tim',123),('Tiny',234)]) >>>{'Tiny': 234, 'Tim': 123}

推导式创建字典:

{d2:d2+'@main.com' for d2 in list(d.keys())}

>>>{'Jack': 'Jack@main.com', 'Tom': 'Tom@main.com'}

练习:循环输出字典中的键值对:

for name,email in d.items():

print(name,email)

4.集合

空集合:A = set() ※想要创建空集合,必须使用set()

演示:

basket = {'apple','orange','apple'} >>>{'orange', 'apple'} 注意重复的元素只显示一个?

'apple' in basket >>>True

'pear' in basket >>>False

集合的数学运算:

a = set('ababcdabca') >>>{'c', 'b', 'a', 'd'}

b = {'a','b','m'} >>>{'b', 'a', 'm'}

a - b >>>{'c', 'd'}

b - a >>>{'m'}

a | b >>>{'c', 'd', 'b', 'a', 'm'}

a & b >>>{'a','b'}

a ^ b >>>{'c','d','m'}

集合推导式:

{x for x in a if x not in 'ab'} >>>{'c','d'}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航