当前位置:首页>python>万字长文吃透Python字典推导式:从入门到精通,一文搞定所有用法

万字长文吃透Python字典推导式:从入门到精通,一文搞定所有用法

  • 2026-06-15 23:51:45
万字长文吃透Python字典推导式:从入门到精通,一文搞定所有用法

在Python的世界里,字典(dict)是最常用、最灵活的数据结构之一,而字典推导式则是生成字典最高效、最优雅的方式。它能让你用一行代码,替代十几行循环+判断的冗余逻辑,不仅代码更简洁,执行效率还远超传统写法,是Python进阶必备的核心技能。

很多新手对字典推导式望而却步,觉得语法晦涩难懂,其实它的逻辑非常直观,只要掌握核心规则,就能轻松驾驭。今天这篇文章,我会从基础语法、入门案例、进阶用法、高阶技巧、性能对比、实战场景六大维度,用超详细的案例带你彻底吃透字典推导式,不管是日常开发、面试还是代码优化,都能直接上手用。

全文干货无废话,建议收藏+转发,吃透这一篇,字典推导式直接封神!


一、先搞懂:什么是字典推导式?

在讲具体用法前,我们先明确两个核心问题:字典推导式是什么?为什么要用它?

1. 核心定义

字典推导式(Dictionary Comprehension)是Python特有的字典快速创建语法,它基于可迭代对象(列表、元组、字符串、range、生成器等),通过键:值表达式+循环+可选条件,一行生成全新字典。

它的设计逻辑和列表推导式完全一致,只是把列表的[]换成了字典的{},并且格式变成了键:值的形式。

2. 核心语法

字典推导式的标准语法只有两种基础形态,记住这两个公式,所有场景都能套:

# 基础无过滤:遍历生成
{键表达式: 值表达式 for 变量 in 可迭代对象}

# 进阶带过滤:遍历+条件筛选
{键表达式: 值表达式 for 变量 in 可迭代对象 if 条件表达式}

3. 为什么要用字典推导式?(3大核心优势)

  1. 代码极简:一行替代多行循环+赋值,可读性拉满;
  2. 效率更高:底层是C语言实现,比for循环手动添加键值对快30%以上;
  3. 灵活性强:支持表达式计算、多变量遍历、嵌套循环、多条件判断,覆盖所有字典生成场景。

举个最直观的对比:传统写法(5行代码):

# 生成 1-5 的数字: 平方的字典
num_dict = {}
for i in range(16):
    num_dict[i] = i ** 2
print(num_dict)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

字典推导式(1行代码):

num_dict = {i: i**2for i in range(16)}
print(num_dict)  # 结果完全一致,代码精简80%

一眼就能看出差距,这就是字典推导式的魅力!


二、入门级:基础字典推导式(全场景案例)

基础字典推导式是最常用的场景,无过滤、纯遍历生成,适合90%的简单字典创建需求。我们分10个高频场景,带你从易到难练习。

场景1:数字序列生成字典(最基础)

range生成数字序列,作为键或值,是入门首选。

# 案例1:键=数字,值=数字本身
dict1 = {i: i for i in range(16)}
print(dict1)  # {1: 1, 2: 2, 3: 3, 4: 4, 5: 5}

# 案例2:键=数字,值=数字的立方
dict2 = {i: i**3for i in range(16)}
print(dict2)  # {1: 1, 2: 8, 3: 27, 4: 64, 5: 125}

# 案例3:键=字符串数字,值=整数
dict3 = {str(i): i for i in range(16)}
print(dict3)  # {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5}

场景2:列表生成字典(单列表遍历)

用列表元素作为键/值,是日常开发最常用的场景。

# 案例1:列表元素为键,值为固定值
names = ["张三""李四""王五"]
dict4 = {name: "未知"for name in names}
print(dict4)  # {'张三': '未知', '李四': '未知', '王五': '未知'}

# 案例2:列表元素为值,键为索引
dict5 = {index: name for index, name in enumerate(names)}
print(dict5)  # {0: '张三', 1: '李四', 2: '王五'}

# 案例3:列表元素为元组,拆分生成键值对
tuple_list = [("a"1), ("b"2), ("c"3)]
dict6 = {k: v for k, v in tuple_list}
print(dict6)  # {'a': 1, 'b': 2, 'c': 3}

场景3:字符串生成字典

遍历字符串,生成字符相关的字典。

# 案例:键=字符,值=字符的ASCII码
str1 = "python"
dict7 = {char: ord(char) for char in str1}
print(dict7)  # {'p': 112, 'y': 121, 't': 116, 'h': 104, 'o': 111, 'n': 110}

场景4:元组生成字典

元组和列表用法完全一致,因为都是可迭代对象:

t = ("苹果""香蕉""橙子")
dict8 = {fruit: len(fruit) for fruit in t}
print(dict8)  # {'苹果': 2, '香蕉': 2, '橙子': 2}

场景5:集合生成字典

集合去重后生成字典,适合处理重复数据:

set1 = {122334}
dict9 = {num: num*2for num in set1}
print(dict9)  # {1: 2, 2: 4, 3: 6, 4: 8}

场景6:表达式计算生成键/值

键和值都支持任意Python表达式,计算、函数调用都可以:

# 键:i+10,值:i的平方+5
dict10 = {i+10: i**2 +5for i in range(1,4)}
print(dict10)  # {11: 6, 12: 9, 13: 14}

# 调用函数生成值
defget_price(name):
return len(name) * 10

dict11 = {name: get_price(name) for name in ["笔""本子""书包"]}
print(dict11)  # {'笔': 10, '本子': 20, '书包': 20}

场景7:两个列表一一对应生成字典

实际开发中,经常有键列表+值列表,用zip打包后直接生成:

keys = ["姓名""年龄""城市"]
values = ["小明"20"北京"]

# 核心:zip打包两个列表
dict12 = {k: v for k, v in zip(keys, values)}
print(dict12)  # {'姓名': '小明', '年龄': 20, '城市': '北京'}

重点zip会按顺序一一配对,长度不一致时,以短的列表为准。

场景8:字典推导式生成空值字典

快速初始化固定键的空值字典,比dict.fromkeys更灵活:

keys = ["id""name""age"]
dict13 = {k: Nonefor k in keys}
print(dict13)  # {'id': None, 'name': None, 'age': None}

场景9:布尔值字典

根据条件生成布尔值字典:

nums = [12345]
dict14 = {num: num%2==0for num in nums}
print(dict14)  # {1: False, 2: True, 3: False, 4: True, 5: False}

场景10:反向字典(键值互换)

快速把原有字典的键和值互换,是高频实用技巧:

original_dict = {"a"1"b"2"c"3}
reverse_dict = {v: k for k, v in original_dict.items()}
print(reverse_dict)  # {1: 'a', 2: 'b', 3: 'c'}

注意:如果原字典值有重复,反向后会覆盖,因为字典键唯一!


三、进阶级:带条件的字典推导式(筛选+过滤)

基础推导式解决「生成」问题,带条件的推导式解决「筛选」问题,在for后面加if条件,只保留符合要求的键值对。

语法:{键: 值 for 变量 in 可迭代对象 if 条件}

场景1:数字筛选(大于/小于/等于)

# 只保留 1-10 中偶数的 数字:平方 字典
even_dict = {i: i**2for i in range(1,11if i%2 == 0}
print(even_dict)  # {2: 4, 4: 16, 6: 36, 8: 64, 10: 100}

# 只保留大于5的数字
gt5_dict = {i: i for i in range(1,11if i>5}
print(gt5_dict)  # {6: 6, 7: 7, 8: 8, 9: 9, 10: 10}

场景2:字符串筛选(长度/包含字符)

words = ["cat""dog""elephant""tiger""lion"]
# 筛选长度大于3的单词
long_words = {word: len(word) for word in words if len(word)>3}
print(long_words)  # {'elephant': 8, 'tiger': 5, 'lion': 4}

# 筛选包含字母"o"的单词
o_words = {word: word.upper() for word in words if"o"in word}
print(o_words)  # {'dog': 'DOG', 'lion': 'LION'}

场景3:字典数据筛选(过滤原有字典)

从现有字典中,筛选符合条件的键值对,是数据处理必备技能

# 学生成绩字典
scores = {"张三"85"李四"92"王五"78"赵六"95}

# 筛选成绩大于90分的学生
high_scores = {name: score for name, score in scores.items() if score>90}
print(high_scores)  # {'李四': 92, '赵六': 95}

# 筛选姓"张"的学生
zhang_stu = {name: score for name, score in scores.items() if name.startswith("张")}
print(zhang_stu)  # {'张三': 85}

场景4:多条件筛选(and/or)

if支持andornot多条件组合,灵活度拉满:

nums = range(121)
# 筛选 大于5 且 是3的倍数 的数字
multi_dict = {i: i*3for i in nums if i>5and i%3==0}
print(multi_dict)  # {6: 18, 9: 27, 12: 36, 15: 45, 18: 54}

# 筛选 小于3 或 大于18 的数字
range_dict = {i: i for i in nums if i<3or i>18}
print(range_dict)  # {1: 1, 2: 2, 19: 19, 20: 20}

场景5:值类型筛选

过滤掉非目标类型的数据:

mix_data = {"a"1"b""2""c"3.14"d"4}
# 只保留值为整数的键值对
int_dict = {k: v for k, v in mix_data.items() if isinstance(v, int)}
print(int_dict)  # {'a': 1, 'd': 4}

四、高阶1:嵌套字典推导式(处理复杂数据)

实际开发中,我们经常遇到嵌套字典(比如接口返回的JSON数据),嵌套字典推导式能一行搞定复杂数据的生成与处理。

1. 生成嵌套字典

# 生成:班级 -> 学生姓名 -> 年龄 的嵌套字典
classes = ["一班""二班"]
students = [{"张三"18}, {"李四"19}]

nested_dict = {cls: stu for cls, stu in zip(classes, students)}
print(nested_dict)
# 输出:{'一班': {'张三': 18}, '二班': {'李四': 19}}

2. 遍历嵌套字典(提取数据)

这是工作中最常用的场景,比如处理JSON接口数据:

# 模拟接口返回的嵌套JSON数据
data = {
"code"200,
"data": {
"user1": {"name""小明""age"20"score"88},
"user2": {"name""小红""age"19"score"95},
"user3": {"name""小刚""age"21"score"76}
    }
}

# 提取:用户名 -> 成绩 的字典(只保留成绩大于80的)
score_dict = {user["name"]: user["score"for user in data["data"].values() if user["score"]>80}
print(score_dict)  # {'小明': 88, '小红': 95}

3. 嵌套循环生成字典

支持多层for循环,和嵌套for循环逻辑完全一致:

# 外层循环:1-2,内层循环:a-b
nest_loop_dict = {f"{i}{j}": i*j for i in range(1,3for j in ["a""b"]}
print(nest_loop_dict)
# 输出:{'1a': 1, '1b': 1, '2a': 2, '2b': 2}

逻辑拆解:先执行外层循环i=1,再执行内层循环j=a、j=b,再执行i=2,依次生成。


五、高阶2:带三元表达式的字典推导式(动态赋值)

除了if过滤,我们还能在键/值表达式中用三元表达式,实现「满足条件赋值A,不满足赋值B」的动态效果,这是字典推导式的终极灵活用法。

语法:{键: 值A if 条件 else 值B for 变量 in 可迭代对象}

场景1:值的动态赋值

scores = {"张三"85"李四"59"王五"92"赵六"72}
# 成绩>=60显示"及格",否则显示"不及格"
result_dict = {name: "及格"if score>=60else"不及格"for name, score in scores.items()}
print(result_dict)
# 输出:{'张三': '及格', '李四': '不及格', '王五': '及格', '赵六': '及格'}

场景2:键的动态赋值

nums = [1,2,3,4,5]
# 奇数键加"odd_",偶数键加"even_"
key_dict = {f"{'odd'if i%2!=0else'even'}_{i}": i for i in nums}
print(key_dict)
# 输出:{'odd_1': 1, 'even_2': 2, 'odd_3': 3, 'even_4': 4, 'odd_5': 5}

场景3:三元表达式+条件过滤(组合技)

# 1-10,只保留大于3的数字,偶数值为"双数",奇数值为"单数"
combo_dict = {i: "双数"if i%2==0else"单数"for i in range(1,11if i>3}
print(combo_dict)
# 输出:{4: '双数', 5: '单数', 6: '双数', 7: '单数', 8: '双数', 9: '单数', 10: '双数'}

六、高阶3:字典推导式的高级技巧(实战必备)

技巧1:去重字典(基于键/值)

利用字典键唯一的特性,快速去重:

# 列表有重复元素,生成键去重的字典
duplicate_list = ["a""b""a""c""b""d"]
unique_dict = {item: Truefor item in duplicate_list}
print(unique_dict)  # {'a': True, 'b': True, 'c': True, 'd': True}

技巧2:合并多个字典

一行代码合并多个字典,比update()更简洁:

dict_a = {"a"1"b"2}
dict_b = {"c"3"d"4}
dict_c = {"e"5}

merge_dict = {**k: v for d in [dict_a, dict_b, dict_c] for k, v in d.items()}
# 简化写法:merge_dict = {**dict_a, **dict_b, **dict_c}
print(merge_dict)  # {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}

技巧3:字典值排序后生成新字典

对字典值排序,生成有序字典:

scores = {"张三"85"李四"92"王五"78}
# 按成绩降序生成新字典
sorted_dict = {k: v for k, v in sorted(scores.items(), key=lambda x: x[1], reverse=True)}
print(sorted_dict)  # {'李四': 92, '张三': 85, '王五': 78}

技巧4:生成默认值字典

快速生成指定键的默认值字典:

keys = ["id""name""create_time"]
default_dict = {k: ""for k in keys}
print(default_dict)  # {'id': '', 'name': '', 'create_time': ''}

技巧5:处理None值(过滤空数据)

清洗数据时,过滤掉值为None或空字符串的键值对:

raw_data = {"name""小明""age"None"city""""phone""123456"}
clean_data = {k: v for k, v in raw_data.items() if v notin [None""]}
print(clean_data)  # {'name': '小明', 'phone': '123456'}

七、性能对比:字典推导式 vs 传统for循环

很多人问:字典推导式只是代码好看吗?执行效率到底差多少?

我们用100万次数据生成做对比,直观看效率差距:

import time

# 测试1:传统for循环
start1 = time.time()
dict1 = {}
for i in range(1000000):
    dict1[i] = i**2
end1 = time.time()
print(f"传统循环耗时:{end1-start1:.4f}秒")

# 测试2:字典推导式
start2 = time.time()
dict2 = {i: i**2for i in range(1000000)}
end2 = time.time()
print(f"字典推导式耗时:{end2-start2:.4f}秒")

实测结果(普通电脑):

  • 传统循环:0.1125秒
  • 字典推导式:0.0758秒

效率提升30%以上!数据量越大,差距越明显,因为字典推导式底层是C语言实现,避免了Python层的循环开销。


八、避坑指南:字典推导式5个常见错误

新手用字典推导式,最容易踩这5个坑,一定要避开:

坑1:键重复(覆盖数据)

字典键唯一,重复键会覆盖之前的值:

# 错误:键都是1,最后只保留最后一个
bad_dict = {1: i for i in range(3)}
print(bad_dict)  # {1: 2} (前两个被覆盖)

坑2:语法错误(少写冒号/花括号)

字典推导式必须是{键:值},少冒号会报错:

# 错误:少了键值之间的冒号
# bad_dict = {i i for i in range(3)}

# 正确
good_dict = {i: i for i in range(3)}

坑3:可迭代对象为空(生成空字典)

如果遍历的可迭代对象为空,会生成空字典,不会报错:

empty_dict = {i: i for i in []}
print(empty_dict)  # {}

坑4:嵌套推导式逻辑混乱

嵌套推导式要注意循环顺序,外层循环在前,内层循环在后

# 错误:内层循环在前,逻辑颠倒
# bad_dict = {i+j for j in range(2) for i in range(2)}

# 正确
good_dict = {f"{i}{j}": i+j for i in range(2for j in range(2)}

坑5:不可哈希的键(报错)

字典的键必须是不可哈希类型(数字、字符串、元组),列表/字典不能做键:

# 错误:列表不能做键
# bad_dict = {[1]: 2}

# 正确:元组/字符串/数字做键
good_dict = {(1,): 2"a"3}

九、实战案例:字典推导式在工作中的真实用法

最后给大家分享3个工作中真实用到的字典推导式场景,直接复制就能用。

案例1:接口数据清洗(最常用)

# 模拟后端返回的原始数据(有多余字段、空值)
api_data = {
"user_id"1001,
"user_name""张三",
"user_age"25,
"user_address"None,
"create_time""2024-01-01",
"update_time""2024-01-02"
}

# 清洗:只保留需要的字段,过滤空值
need_fields = ["user_name""user_age""create_time"]
clean_data = {k: v for k, v in api_data.items() if k in need_fields and v}
print(clean_data)
# 输出:{'user_name': '张三', 'user_age': 25, 'create_time': '2024-01-01'}

案例2:统计列表元素出现次数

words = ["apple""banana""apple""orange""banana""apple"]
count_dict = {word: words.count(word) for word in set(words)}
print(count_dict)  # {'apple': 3, 'banana': 2, 'orange': 1}

案例3:配置文件转换

# 列表格式的配置,转字典
config_list = [("host""127.0.0.1"), ("port"3306), ("user""root")]
config_dict = {k: v for k, v in config_list}
print(config_dict)  # {'host': '127.0.0.1', 'port': 3306, 'user': 'root'}

十、总结:字典推导式核心口诀

最后用一个口诀,帮你记住字典推导式的所有核心:

花括号里键值对,for循环放后面; 条件筛选加if,表达式计算随便用; 嵌套三元都支持,简洁高效是王者; 键唯一不重复,可迭代对象随便遍历。

从基础生成、条件过滤,到嵌套遍历、三元表达式,再到实战优化,这篇文章覆盖了字典推导式的所有用法,不管你是Python新手还是进阶开发者,都能直接上手。

字典推导式是Python优雅编程的代表,学会它,不仅能让你的代码量减少80%,更能大幅提升执行效率,在面试和工作中绝对是加分项!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 08:09:47 HTTP/2.0 GET : https://f.mffb.com.cn/a/498151.html
  2. 运行时间 : 0.127058s [ 吞吐率:7.87req/s ] 内存消耗:4,639.63kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=f128a4a7d0ea142e5bf1a92961359c07
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000607s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000877s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000290s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000262s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000489s ]
  6. SELECT * FROM `set` [ RunTime:0.000194s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000507s ]
  8. SELECT * FROM `article` WHERE `id` = 498151 LIMIT 1 [ RunTime:0.000487s ]
  9. UPDATE `article` SET `lasttime` = 1783037387 WHERE `id` = 498151 [ RunTime:0.017818s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000399s ]
  11. SELECT * FROM `article` WHERE `id` < 498151 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000581s ]
  12. SELECT * FROM `article` WHERE `id` > 498151 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000344s ]
  13. SELECT * FROM `article` WHERE `id` < 498151 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001838s ]
  14. SELECT * FROM `article` WHERE `id` < 498151 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001799s ]
  15. SELECT * FROM `article` WHERE `id` < 498151 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.022385s ]
0.131128s