当前位置:首页>python>Python:生成器表达式

Python:生成器表达式

  • 2026-08-19 10:32:39
Python:生成器表达式

生成器表达式(Generator Expression)是 Python 中用于按需生成数据的一种简洁语法,它可以把遍历、条件筛选和元素转换写在一个表达式中,但不会立即创建并保存全部结果,而是在迭代过程中逐个产生元素。

生成器表达式与列表推导式的基本结构相似,但使用圆括号 ( ),生成的结果是生成器对象。它特别适合只需遍历一次、数据量较大或可以提前结束处理的场景。

一、什么是生成器表达式

1、基本语法

生成器表达式通常使用 ( ),基本形式为:

(输出表达式 for 变量 in 可迭代对象)

例如,生成 0 到 4 的平方:

squares = (    x ** 2    for x in range(5))print(squares)

输出类似于:

<generator object <genexpr> at 0x...>

这里没有直接输出平方结果,而是得到一个生成器对象

这段生成器表达式可以分成三个部分:

x ** 2          # 计算当前要产生的元素for x           # 将当前元素依次绑定给 xin range(5)     # 指定要遍历的数据

可以使用 next() 逐个取得生成器中的元素,“手动控制”迭代:

print(next(squares))print(next(squares))print(next(squares))

输出:

014

生成器表达式可以看作一种简化的生成器函数。前面的代码与下面的基本过程类似:

def generate_squares():    for x in range(5):        yield x ** 2squares = generate_squares()

生成器函数通过 yield 逐个产生结果,生成器表达式则将这种简单逻辑写在一个表达式中。

2、生成器表达式的结果特点

(1)结果是生成器对象

生成器表达式不会生成列表、元组或集合,而是返回生成器对象:

values = (x ** 2 for x in range(5))print(type(values))

输出:

<class 'generator'>

因此,下面的写法不是元组推导式:

values = (x ** 2 for x in range(5))

Python 没有专门的元组推导式。如果需要生成元组,可以将生成器表达式传给 tuple():

values = tuple(x ** 2 for x in range(5))print(values)

输出:

(0, 1, 4, 9, 16)

(2)元素按需产生

生成器表达式采用惰性计算(Lazy Evaluation)。创建生成器时,通常不会立即计算全部元素;只有请求下一个元素时,才会继续执行相应计算。

例如:

def double(value):    print(f"处理 {value}")    return value * 2values = (    double(x)    for x in range(3))print("生成器已创建")print(next(values))print(next(values))

输出:

生成器已创建处理 00处理 12

可以看出,创建生成器时没有调用 double()。每次执行 next(),才会计算并返回一个结果。

(3)生成器通常只能遍历一次

生成器会记录当前迭代位置。元素被取出后,不会自动回到起点。

values = (x ** 2 for x in range(5))print(list(values))print(list(values))

输出:

[0, 1, 4, 9, 16][]

第一次调用 list() 已经取出了全部元素,因此第二次遍历时生成器已经耗尽。

生成器耗尽后继续调用 next(),会引发 StopIteration:

values = (x for x in range(1))print(next(values))print(next(values))

第一次调用 next() 会取得元素 0;再次调用时,生成器中已经没有更多元素,因此会引发 StopIteration。

生成器对象本身也是可迭代对象。使用 for 循环遍历生成器时,for 循环会把 StopIteration 作为元素已经耗尽的信号,并自动结束循环,因此程序不会因这个异常而中断

(4)不支持索引和长度查询

生成器不一次性保存全部元素,因此不能通过索引访问:

values = (x ** 2 for x in range(5))print(values[0])

运行后会引发 TypeError。

生成器也不能直接使用 len():

print(len(values))

同样会引发 TypeError。

如果需要反复遍历、通过索引访问或提前知道元素数量,列表通常更合适。

3、作为函数参数

生成器表达式经常直接作为函数的参数使用。

例如,计算 0 到 4 的平方和:

total = sum(    x ** 2    for x in range(5))print(total)

输出:

30

当生成器表达式是函数调用中的唯一参数时,可以省略生成器表达式自身的圆括号:

total = sum(x ** 2 for x in range(5))

这里的圆括号属于 sum() 的函数调用,并不会将生成器表达式转换为元组。

下面两种写法作用相同:

total = sum(x ** 2 for x in range(5))total = sum((x ** 2 for x in range(5)))

第一种写法更简洁,也更常用。

如果函数还接收其他参数,生成器表达式通常需要使用圆括号明确包围。例如:

values = sorted(    (x ** 2 for x in range(5)),    reverse=True)print(values)

输出:

[16, 9, 4, 1, 0]

生成器表达式常作为 sum()、max()、min()、any()、all() 等函数的参数,用于聚合计算或条件判断。生成器对象也可以通过 list()、tuple() 等函数一次性展开,生成新的容器对象

二、带条件的生成器表达式

生成器表达式中的条件主要有两种用途:

• 条件筛选:决定当前遍历到的元素是否参与结果生成

• 条件表达式:根据条件选择当前要生成的元素

两种写法中,if 所在的位置不同。

1、条件筛选

在 for 后面添加 if,可以只处理满足条件的元素。

基本语法为:

(

输出表达式

    for 变量 in 可迭代对象

    if 条件

)

例如,按需生成偶数的平方:

even_squares = (    x ** 2    for x in range(10)    if x % 2 == 0)for value in even_squares:    print(value)

输出:

04163664

只有满足 x % 2 == 0 的数字才会参与结果生成。

2、条件表达式

条件表达式可以作为输出表达式,根据条件选择不同结果。

基本语法为:

(

结果1 if 条件 else 结果2

    for 变量 in 可迭代对象

)

例如,按需生成奇偶标签:

labels = (    "even" if x % 2 == 0 else "odd"    for x in range(5))print(list(labels))

输出:

['even''odd''even''odd''even']

生成器表达式不会像集合推导式那样去除重复结果,而会按照遍历顺序逐个产生每个结果。

三、包含多个 for 子句的生成器表达式

生成器表达式中可以连续使用多个 for 子句,表示多层循环。

基本语法为:

(

 输出表达式

    for 变量1 in 可迭代对象1

    for 变量2 in 可迭代对象2

)

多个 for 子句从左到右,对应普通循环由外到内的顺序。

例如,按需生成二维坐标点:

points = (    (x, y)    for x in range(2)    for y in range(3))for point in points:    print(point)

输出:

(0, 0)(0, 1)(0, 2)(1, 0)(1, 1)(1, 2)

在这段代码中:

for x 是外层循环;

for y 是内层循环;

(x, y) 是当前产生的元素。

多个 for 子句常用于按需展开嵌套数据。例如,将二维列表中的元素依次取出:

matrix = [    [123],    [456]]values = (    value    for row in matrix    for value in row)print(list(values))

输出:

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

这里只在调用 list() 时才会完整取得结果。如果直接使用 for 循环,则会逐个处理元素。

四、生成器表达式的典型应用场景

生成器表达式适合只遍历一次的数据处理任务。它常与聚合函数、条件判断函数、文件对象和其他生成器组合使用。

1、直接进行聚合计算

sum()max() 和 min() 等聚合函数可以直接接收生成器,不必先创建中间列表。

例如,计算 0 到 999999 的平方和:

total = sum(    x ** 2    for x in range(1_000_000))print(total)

由于生成器逐个产生平方值,程序不需要先将一百万个结果保存到列表中。

2、使用 any() 和 all() 提前结束判断

any() 在遇到第一个真值时停止,all() 在遇到第一个假值时停止。与生成器表达式配合,可以避免检查后续不必要的元素。

例如,检查一组 AI 模型预测中是否存在低置信度结果:

confidences = [0.96, 0.91, 0.54, 0.88, 0.93]has_low_confidence = any(    confidence < 0.6    for confidence in confidences)print(has_low_confidence)

输出:

True

当 any() 发现 0.54 < 0.6 后,就可以确定结果为 True,不必继续检查剩余元素。

类似地,可以检查所有预测是否达到最低要求:

all_confident = all(    confidence >= 0.5    for confidence in confidences)print(all_confident)

输出:

True

3、逐行处理文件数据

文件对象本身可以逐行迭代。与生成器表达式配合,可以在不一次性读取整个文件的情况下转换和筛选数据。

假设 scores.txt 中每行保存一个分数:

withopen("scores.txt", encoding="utf-8"asfile:    scores = (        float(line.strip())        for line in file        if line.strip()    )    highest_score = max(scores)print(highest_score)

生成器会在 max() 请求数据时逐行读取文件、去除空白并转换为浮点数。

由于生成器依赖仍然打开的文件,因此应在 with 代码块内部完成遍历。

4、构建惰性处理管道

多个生成器表达式可以连接起来,将复杂处理拆分成多个清晰步骤。

numbers = range(20)even_numbers = (    number    for number in numbers    if number % 2 == 0)squares = (    number ** 2    for number in even_numbers)large_squares = (    value    for value in squares    if value > 50)print(list(large_squares))

输出:

[64, 100, 144, 196, 256, 324]

三个生成器分别负责筛选偶数、计算平方和筛选较大结果。每个阶段都按需取得上一个阶段产生的数据,不会提前创建多个中间列表。

五、常见问题及使用建议

1、不要重复使用已经耗尽的生成器

生成器通常只能完整遍历一次:

values = (x ** 2 for x in range(5))print(sum(values))print(sum(values))

第二次调用得到 0,因为生成器已经耗尽。

如果需要重复遍历,可以重新创建生成器:

values1 = (x ** 2 for x in range(5))values2 = (x ** 2 for x in range(5))

也可以在数据量合适时直接使用列表。

2、需要索引或重复遍历时使用列表推导式

生成器表达式适合逐个处理元素,但不适合以下任务:

• 通过索引访问元素

• 多次遍历同一批结果

• 使用切片

• 直接查询元素数量

• 长期保存全部计算结果

这些场景通常更适合列表推导式:

values = [    x ** 2    for x in range(5)]

选择生成器还是列表,应根据后续使用方式决定,而不能只根据写法是否简洁判断。

3、转换为容器后不再节省结果存储空间

下面的代码虽然使用了生成器表达式:

values = list(x ** 2 for x in range(1_000_000))

但 list() 最终仍会保存全部结果,因此不会减少最终列表占用的空间。

如果目标就是生成列表,直接使用列表推导式通常更清楚:

values = [    x ** 2    for x in range(1_000_000)]

生成器表达式的空间优势主要体现在结果可以被逐个消费,而不需要完整保存时。

4、注意错误可能在迭代时才出现

由于生成器采用惰性计算,创建生成器时不一定立即执行输出表达式中的操作。

values = (    10 / x    for x in [2, 1, 0, 5])

这时通常不会立即报错。只有迭代到 x = 0 时,才会引发 ZeroDivisionError:

for value in values:    print(value)

因此,生成器中的错误可能在实际消费数据时才出现。

5、避免副作用操作

生成器表达式的主要目的是按需产生数据,与推导式一样,不适合只用于输出、写入文件或修改外部状态。

如果主要目的是执行输出或其他副作用操作,应使用普通循环。

📘 小结

生成器表达式可以在遍历过程中完成元素转换和条件筛选,并按需逐个产生结果。它适合聚合计算、短路判断、文件流处理和惰性数据管道。使用时应注意生成器通常只能遍历一次,不支持索引和长度查询,只有在结果被逐个消费时才能体现空间优势。

点赞有美意,赞赏是鼓励

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 14:39:06 HTTP/2.0 GET : https://f.mffb.com.cn/a/506436.html
  2. 运行时间 : 0.114509s [ 吞吐率:8.73req/s ] 内存消耗:4,583.23kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0974fe8bfe67cd4766c987e54936dcec
  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.000724s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001501s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000693s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000773s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001227s ]
  6. SELECT * FROM `set` [ RunTime:0.007858s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000735s ]
  8. SELECT * FROM `article` WHERE `id` = 506436 LIMIT 1 [ RunTime:0.000503s ]
  9. UPDATE `article` SET `lasttime` = 1787294346 WHERE `id` = 506436 [ RunTime:0.001205s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000252s ]
  11. SELECT * FROM `article` WHERE `id` < 506436 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.002903s ]
  12. SELECT * FROM `article` WHERE `id` > 506436 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.016302s ]
  13. SELECT * FROM `article` WHERE `id` < 506436 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004967s ]
  14. SELECT * FROM `article` WHERE `id` < 506436 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000761s ]
  15. SELECT * FROM `article` WHERE `id` < 506436 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001875s ]
0.116056s