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