python常用数据结构_Python中的基本数据结构:列表,元组,字典

Python列表

列表是最常用的Python数据类型,类似于Java或者C/C++语言中的数组,不过因为Python是弱类型的语言,所以数组中的元素可以类型不相同,甚至可以为对象。

Python列表创建

Python中可以使用[]创建列表,如下:

list1 = ['baidu', 'alibaba', 1997, 2000]

list2 = [1, 2, 3, 4, 5 ]

list3 = ["a", "b", "c", "d"]

Python列表访问,截取

Python中的列表,可以通过索引来进行访问。第一个元素的索引为0。

list = ['a', 'b', 'b', 'd']

print(list[0]); # 访问第一个元素,输出:a

Python提供了丰富的访问表达式操作,如下:

list[2] : 返回list列表的第3个元素

list[-2] : 返回list列表的倒数第2个元素

list[1:]: 返回list列表第2个元素之后的所有元素,相当于列表截取

list[:-3]: 返回list列表从第1个元素到倒数第3个元素之间的所有元素,不包括倒数第3个元素

list[:] : 放回list列表的所有元素

看下面的例子:

list = ['a', 'b', 'c', 'd', 'e', 'f']

print(list[2]) # c

print(list[-2]) # e

print(list[1:]) # ['b', 'c', 'd', 'e', 'f']

print(list[:-3]) # ['a', 'b', 'c']

print(list[:]) # ['a', 'b', 'c', 'd', 'e', 'f']

Python列表更新列表元素

可以通过索引修改列表元素,也可以使用append()方法来为列表添加新元素。

list = ['baidu', 'alibaba', 1997, 2001]

print(list[2]) # 1997

# 使用下标修改元素

list[2] = 2000;

print(list[2]) # 2000

# 使用 append() 方法添加元素

list.append(2018)

print(list) # ['baidu', 'alibaba', 2000, 2001, 2018]

Python列表删除列表元素

可以使用del语句删除列表元素。

list = ['baidu', 'alibaba', 1997, 2001]

print(list) # ['baidu', 'alibaba', 1997, 2001]

del list[-1] # 删除最后一个元素

print(list) # ['baidu', 'alibaba', 1997]

这里需要注意的是,del只是删除变量,并不会删除数据。它不同于C++中的delete,并不会释放掉数据的内存空间。

Python列表操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

Python表达式

结果

描述

len([1, 2, 3])

3

返回列表元素个数

[1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

组合列表元素

[‘a’] * 4

[‘a’, ‘a’, ‘a’, ‘a’]

重复元素

3 in [1, 2, 3]

True

检测元素是否存在于列表中

Python嵌套列表

因为列表的元素类型没有限制,当一个列表的元素是列表时,可以实现嵌套列表。

a = ['a', 'b', 'c']

b = [1, 2]

c = [a, b]

print(c) # [['a', 'b', 'c'], [1, 2]]

Python列表函数

Python提供了一些内置函数用来处理列表,如下:

函数名

描述

len(list)

返回列表元素个数

max(list)

返回列表元素最大值

min(list)

返回列表元素最小值

list(seq)

将元组转换为列表

Python列表方法

列表本身为Python的内置对象,该对象包含下面常用方法:

方法名

描述

list.append(obj)

在列表末尾添加新的对象

list.count(obj)

统计某个元素在列表中出现的次数

list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.index(obj)

从列表中找出某个值第一个匹配项的索引位置

list.insert(index, obj)

将对象插入列表

list.pop(obj=list[-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj)

移除列表中某个值的第一个匹配项

list.reverse()

反向列表中元素

list.sort([func])

对原列表进行排序,func为排序回调函数

list.clear()

清空列表

list.copy()

复制列表,并返回新列表副本

需要注意list.copy()函数和=赋值的区别,list.copy()为拷贝赋值,而=为引用赋值

a = [1, 2]

b = a

c = a.copy()

del a[1]

# a=[1], b=[1], c=[1,2]

b.append(3)

# a=[2,3], b=[2,3], c=[1,2]

c.remove(2)

# a=[2,3], b=[2,3], c=[1]

Python元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

Python元组创建

区别于列表,元组使用小括号()穿件,元素之间使用逗号隔开。

tup1 = ('baidu', 'alibaba', 1997, 2000)

tup2 = (1, 2, 3, 4)

tup3 = ('a', 'b', 'c')

tup4 = () # 空元组

tup5 = (3,)

# tup5 = (3) # 该语句的tup5为int类型不是元组

需要注意:元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。

Python元组的访问,删除,运算符和函数和列表相同,唯一需要注意的是元组不能修改元素。

Python字典

Python中的字典是一种(key=>value)的键值对容器。键必须唯一并且不可变,如字符串,数字或元组,不可使用列表作为键。

Python字典创建

字典使用大括号{}创建,元素之间使用逗号分隔,key和value之间使用冒号隔开:

dict1 = { 'abc': 456 }

dict2 = { 'abc': 123, 98.6: 37 }

dict3 = { 'a' : 'aa', 'b' : 'bb' }

Python字典访问

Python字典通过键访问,将键作为下标访问:

dict = {'name': 'uusama', 'age': 20}

print ("dict['name']: ", dict['name']) # dict['name']: uusama

print ("dict['age']: ", dict['age']) # dict['age']: 20

print ("dict['phone']: ", dict['phone']) # 报错:KeyError

如果字典中没有访问的键,则会报KeyError错误。

Python字典内容修改

Python可以通过键来对已有内容进行修改,如果没有相应匹配键的值则添加:

dict = {'name': 'uusama', 'age': 20}

dict['name'] = 'uusama.com'; # 更新 name

dict['school'] = 'unknow' # 添加信息

print ("dict['name']: ", dict['name']) # dict['name']: uusama.com

print ("dict['school']: ", dict['school']) # dict['school']: unknow

Python字典元素删除

同样适用del删除指定键的元素,可以使用clear()方法清空字典

dict = {'name': 'uusama', 'age': 20}

del dict['age'] # 删除键 'age'

dict.clear() # 清空字典

del dict # 删除字典

Python指定嵌套

Python字典的值可以是字典,所以可以多级嵌套:

cities={

'广东':{

'深圳':['a','b','c'],

'广州':['s','s','s','s'],

'珠海':['c','c','c',],

},

'贵州':{

'贵阳':['as','ad','ae'],

'遵义':['vb','vs','vs'],

}

}

Python字典内置函数

Python字典包含了以下内置函数

函数名

函数描述

len(dict)

计算字典元素个数,即键的总数

str(dict)

输出字典,以可打印的字符串表示

type(variable)

返回输入的变量类型,如果变量是字典就返回字典类型

Python字典方法

同样Python字典也是一种内置对象,常用的方法如下:

方法名

描述

dict.clear()

删除字典内所有元素

dict.copy()

返回一个字典的浅复制

dict.fromkeys()

创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

dict.get(key, default=None)

返回指定键的值,如果值不在字典中返回default值

dict.items()

以列表返回可遍历的(键, 值) 元组数组

dict.keys()

以列表返回一个字典所有的键

dict.values()

以列表返回字典中的所有值

dict.setdefault(key, default=None)

和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

dict.update(dict2)

把字典dict2的键/值对更新到dict里

dict.pop(key[,default])

删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值

dict.popitem()

随机返回并删除字典中的一对键和值(一般删除末尾对)

key in dict

如果键在字典dict里返回true,否则返回false

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值