说了这么多,到底什么时候用列表,什么时候用字典?给你举几个实际的例子,看完你就不会错了。
比如你要存一周的天气温度,周一到周日按顺序排,你要每天按顺序打印出来,这种肯定用列表啊。temp = [23, 25, 22, 26, 24, 25, 21],周一就是第一个,周日就是最后一个,拿的时候按索引取,完美。
那如果我要存每个人对应的体温呢?张三今天多少度,李四今天多少度,这种你用列表就傻了,你得存成[("张三", 36.5), ("李四", 36.7)],找的时候还要循环对比名字,直接整个字典{"张三":36.5, "李四":36.7},要拿张三的温度直接写名字就出来,不好吗?
还有嵌套的情况,很多人碰到嵌套就懵,其实一点都不难。比如我要存一个班级所有学生的信息,每个学生有姓名年龄学号,那你外面可以用列表,因为你要按顺序存所有学生,里面每个学生的信息用字典,这不就清晰了吗?
class_student = [ {"name": "张三", "age": 18, "id": 1}, {"name": "李四", "age": 19, "id": 2} ]
你看,遍历所有学生直接循环列表就行,找每个学生的信息直接用键拿,一点不乱。
反过来有没有外面用字典里面用列表的?太有了。比如你要按班级存学生名单,一年级有哪些学生,二年级有哪些学生,那直接把年级当键,值是存学生名字的列表,{"一年级": ["张三", "李四"], "二年级": ["王五", "赵六"]},找一年级所有学生直接拿键出来就是列表,挨个遍历就行,太舒服了。
我之前帮人改代码,见过有人把这种结构全塞列表里,[["一年级", "张三", "李四"], ["二年级", "王五", "赵六"]],找二年级的学生得从头找,累不累啊,这就是典型的用错了数据类型。