本文详细归纳整理了Python中列表、字典、元组、集合数据结构。分享给大家供大家参考。具体分析如下:
列表:
复制代码 代码如下: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\’}
希望本文所述对大家的python程序设计有所帮助。