1.字典
Python内置了字典的支持,也就是java中的map。使用键-值对(Key,Value)的形式存储数据,其中Key必须是唯一的,而value值可以重复出现,Key的类型必须是不可变的,如数字、字符串。元组,而Value可以是任何类型,如列表,字典,字符串等。
和list对比优点是能够极快的查询到value,而缺点是暂用较多的内存
举个栗子:
使用字典,获取人的年龄,只需要让姓名和年龄对应上就可以直接获取。如果用list实现,获取到某一个人的年龄,需要循环列表。
其中Python的字典和java中map不同的是,python是动态类型语言,所以Python的字典(Key-Value)类型都是可变的。
语法格式:
d = {key1 : value1, key2 : value2 }
map = {'小明': 23, '小李': 20, '小丽': 22}
map2 = {'小明': '男', '小李': 20, 23: '小明'}
字典的取值方法:
只需要通过key就可以取到值,需要注意的是,当key不存在时,会报异常
map['小明']
想要避免Key不存在的异常,有两种方式,一种是使用'in'判断Key是否存在
if '小明' in map.keys():
print(map['小明'])
else:
print("Key不存在")
另外一种方式是通过字典提供的get()方法,如果Key不存在,则返回None或者自己指定的值
字典的操作
2.set
set和字典类似,但是set不储存Value,set可以理解成数学上的无序不重复数列。
set的定义需要提供一组数列
3.元组、列表
元组和列表相似,不同之处在于元组是不可变的,而列表是可变的。
1)列表
列表的定义:列表使用中括号定义
# 列表
list1 = [1, 3, 5, 7, 10]
list2 = ['赤', '橙', '红', '黄', '绿', '青', '蓝', '紫']
列表的操作
list1 = [1, 3, 5, 7, 10]
print(list1[0]) # 读第一个数 >>>1
print(list1) # >>>[1, 3, 5, 7, 10]
list1[0] = 2 # 给第一个数重新赋值
print(list1) # >>>[2, 3, 5, 7, 10]
list1.remove(2) # 删除第一个2这个元素
print(list1) # >>>[3, 5, 7, 10]
list1.append(10) # 添加一个元素在最后
print(list1) # >>>[3, 5, 7, 10, 10]
list1.insert(1, 4) # 插入一个元素
print(list1) # >>>[3, 4, 5, 7, 10, 10]
2)元组
元组的定义:元组使用小括号定义
# 元组
tup1 = (1, 3, 5, 7, 10)
tup2 = ('赤', '橙', '红', '黄', '绿', '青', '蓝', '紫')
# 也可以不要小括号
tup3 = '个', '十', '百', '千'
# 当元组只有一个元素时,需要加上一个逗号,否则会被认为是一个运算符
# 如下所示 tupOne1 = (3)会被认为是整数3
tupOne1 = (3)
tupOne2 = (3,)
元组的操作
由于元组是不可变的,所以当修改元组值时会报异常,因此元组可以认为是一个只读数列
元组运算符(参考 菜鸟教程)
Python表达式 | 结果 | 描述 |
len((1,2,3)) | 3 | 计算元组长度 |
(1,2,3)+(4,5,6) | (1,2,3,4,5,6) | 连接 |
('HI!'*4) | ('HI!','HI!','HI!','HI!') | 复制 |
3 in (1,2,3) | True | 是否包含 |
for i in (1,2,3) :print(i, end=" ") | 1 2 3 | 迭代 |