当前位置:首页>python>Python 列表生成式与生成器:从立即计算到按需生成

Python 列表生成式与生成器:从立即计算到按需生成

  • 2026-08-19 18:44:51
Python 列表生成式与生成器:从立即计算到按需生成

Python 列表生成式与生成器:从立即计算到按需生成

列表生成式和生成器表达式可以使用几乎相同的推导语法。不同的是,生成式使用方括号,会立即创建完整列表;生成器使用圆括号,返回一个生成器对象。这个看似很小的变化,会进一步影响计算时机、内存占用和数据能否重复使用。

squares_list = [x * x for x in range(5)]squares_generator = (x * x for x in range(5))print(squares_list)print(squares_generator)

第一行直接得到 [0, 1, 4, 9, 16],第二行只创建了生成器,打印时看到的是类似 <generator object <genexpr> at ...> 的对象信息。

同一段推导,两种计算方式

列表生成式与生成器表达式都可以描述“从一组输入中逐个取值,经过计算后产生结果”。区别在于结果如何保存。

生成式方括号:立即创建完整列表

执行列表生成式时,Python 会遍历输入,把每次计算得到的值放进一个新列表。表达式结束后,所有元素都已经在列表中:

squares = [x * x for x in range(5)]print(len(squares))print(squares[2])print(list(squares))

列表支持 len()、数字索引和重复遍历。这里的代价也很直接:无论后面实际使用多少个元素,创建时都会先把完整结果算出来并保存在内存中。

生成器圆括号:返回生成器对象

把最外层方括号换成圆括号,得到的是生成器表达式:

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

两次 next() 依次得到 0 和 1。生成器没有提前保存后面的全部平方数,而是在请求下一个值时继续计算。

对比项
列表生成式
生成器表达式
外层语法
[]()
创建结果
list
生成器迭代器
计算方式
立即产生完整结果
按需产生下一个值
数字索引、len()
支持
不支持
重复遍历
支持
耗尽后不能重新开始

两种写法没有统一的优先级。结果较小,而且后面需要索引、求长度或重复遍历时,列表更方便;数据量较大、可能提前停止,或者只需要把结果交给下一个处理步骤时,生成器更合适。

列表生成式:把转换和筛选写进表达式

列表生成式的基本结构,可以从普通循环一步步对应出来。

基本结构:表达式、for 与输入序列

先用循环生成 1 到 5 的平方:

squares = []for x in range(1, 6):    squares.append(x * x)

循环里的三个角色很明确:range(1, 6) 提供输入,for x 逐个取值,x * x 决定输出。把它们放进列表生成式,顺序变成“输出表达式在前,循环在后”:

squares = [x * x for x in range(1, 6)]

两段代码都会得到 [1, 4, 9, 16, 25]。列表生成式适合表达简单、没有副作用的转换;但是如果一行代码已经需要多个括号来控制逻辑,表达式很复杂,其实更适合使用普通循环来创建列表。

for 后面的 if:过滤元素

在 for 后面添加 if,可以决定当前输入是否进入结果列表:

even_squares = [    x * x    for x in range(1, 11)    if x % 2 == 0]print(even_squares)

输出为 [4, 16, 36, 64, 100]。执行时先从 range() 取得 x,再检查 x % 2 == 0;条件成立才计算并收集前面的 x * x

这个位置的 if 是过滤条件,因此不能在后面直接添加 else

[x for x in range(1, 6) if x % 2 == 0 else 0]

这段代码会抛出 SyntaxError。过滤只回答“当前元素要不要保留”,被排除的元素不会再产生替代值。

for 前面的 if...else:决定输出值

如果每个输入都要保留,只是根据条件产生不同结果,就要把条件表达式放到 for 前面:

numbers = [    x if x % 2 == 0 else -x    for x in range(1, 6)]print(numbers)

输出为 [-1, 2, -3, 4, -5]。这里的 x if ... else -x 必须为每个 x 计算出一个值,所以 else 不能省略。

两种写法可以用一句执行顺序区分:for 后面的 if 负责筛选输入,for 前面的 if...else 负责计算输出。

多层循环:按照嵌套顺序组合数据

列表生成式可以继续追加 for 子句,其顺序与普通嵌套循环一致:

combinations = [    left + right    for left in "ABC"    for right in "XY"]print(combinations)

输出为 ['AX', 'AY', 'BX', 'BY', 'CX', 'CY']。这里得到的是两个集合的笛卡尔积:外层先固定一个 left,内层再遍历所有 right

循环变量也可以直接解包。例如,遍历字典的 items() 时,每一项都是一个键值对:

scores = {"Alice": 95, "Bob": 88}items = [f"{name}={score}" for name, score in scores.items()]print(items)

在 Python 3.7 及之后,字典保持插入顺序,因此这里输出 ['Alice=95', 'Bob=88']

生成器表达式:需要一个再计算一个

列表生成式负责描述转换规则,生成器表达式在此基础上改变了结果的产生方式。它返回的是生成器迭代器,可以被 next() 和 for 驱动。

从 [] 换成 ()

下面两段代码使用相同的转换规则:

numbers = range(1, 6)squares_list = [x * x for x in numbers]squares_generator = (x * x for x in numbers)

squares_list 创建时已经完成遍历;squares_generator 则等到外部请求数据时,才计算下一个 x * x

“惰性计算”也有一个细节:生成器表达式最左侧 for 后面的可迭代对象会在创建生成器时求值,其他表达式通常等到取值时再执行。因此,它不是把整行代码无条件推迟到第一次 next(),而是把逐项计算的主要工作延后。

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

total = sum(x * x for x in range(1, 6))print(total)

sum() 会逐个消费生成器产生的值,最后得到 55,中间不需要先创建平方数列表。

next、for 与 StopIteration

next() 展示了生成器最直接的消费方式:

squares = (x * x for x in range(3))print(next(squares))print(next(squares))print(next(squares))print(next(squares))

前三次分别得到 014。第四次已经没有数据可取,Python 会抛出 StopIteration

完整遍历时通常交给 for

squares = (x * x for x in range(3))for value in squares:    print(value)

for 会在内部不断请求下一个值,并在遇到 StopIteration 时正常结束循环。代码无需手动捕获这个异常,但 next() 仍然适合只取一个值或手动控制消费节奏的情况。

一次性消费与耗尽状态

生成器保存的是当前执行状态,不是一份可以反复读取的结果集合。走到结尾以后,它会一直保持耗尽状态:

squares = (x * x for x in range(3))print(list(squares))print(list(squares))

第一次输出 [0, 1, 4],同时把生成器消费完;第二次只能得到空列表 []。如果需要再次遍历,就要重新创建生成器;如果需要随机访问、求长度或者保留结果,则应当使用列表或主动执行 list(generator)

生成器函数:yield 保存执行现场

生成器表达式适合简单推导。计算过程包含循环状态、多个分支或递推关系时,可以把它写成包含 yield 的生成器函数。

调用函数:先得到生成器对象

下面的函数在三个位置打印日志,并产生两个值:

def trace_values():    print("start")    yield 1    print("resume")    yield 3    print("end")values = trace_values()print("created")

执行这段代码只会打印 created。调用 trace_values() 创建了生成器对象,函数体还没有开始运行,所以 start 暂时不会出现。

第一次 next:运行到 yield

继续对同一个对象调用 next()

print(next(values))

这时函数从开头执行,先打印 start,再执行 yield 1yield 把数值 1 交给调用方,同时暂停函数;局部变量、指令位置和当前执行状态都会被保留下来。

这里没有像普通 return 那样结束整个函数。生成器只是暂时把控制权交回调用方,等待下一次请求。

再次 next:从暂停位置继续

第二次调用 next(values) 时,执行会从上一个 yield 后面恢复:

print(next(values))

程序先打印 resume,然后通过 yield 3 产生第二个值并再次暂停。第三次调用时只剩下 print("end"),函数执行到末尾,随后用 StopIteration 表示生成器已经结束。

这套“运行到 yield—保存状态—从原位置恢复”的过程,使生成器函数可以自然地表达递推计算:

def fibonacci(count):    index, current, next_value = 0, 0, 1    while index < count:        yield next_value        current, next_value = next_value, current + next_value        index += 1

每次需要新值时,函数利用保留下来的 currentnext_value 和 index 继续计算,无需提前保存整个数列。

return:结束生成器

生成器函数执行到末尾,或者遇到 return,都会结束迭代。如果写成 return "done",这个值会放在 StopIteration.value 中;普通 for 循环会自动处理 StopIteration,不会把 "done" 当成一个普通元素输出。

还有一个容易忽略的地方:每次调用生成器函数都会创建新对象。下面两行都从第一个 yield 开始,因为它们操作的是两个不同的生成器:

print(next(trace_values()))print(next(trace_values()))

如果希望继续前一次的执行位置,需要先保存对象,再反复对同一个对象调用 next() 或使用 for 遍历。

容易写错的三个地方

列表生成式和生成器的常见错误,都可以回到它们各自的执行位置来判断:

  • • for 后面的 if 是过滤条件,不能直接带 else;要为每个输入选择输出值,应把完整的 if...else 放到 for 前面。
  • • next(generator_function()) 每次都会创建新生成器,无法沿用上一次暂停位置;需要先把对象保存到变量中。
  • • 生成器是一次性迭代对象,消费完成后不会自动复位;需要重复遍历时,应重新创建生成器或保存为列表。

这三种错误表面上分别属于语法、函数调用和遍历,背后对应的是三个不同问题:当前代码是在筛选输入、创建对象,还是消费已有对象。

[]、() 与 yield 怎么选

三种形式可以按照结果规模和使用方式来选择:

形式
产生的对象
适合的任务
[expression for ...]
完整 list
结果较小,需要索引、长度或重复使用
(expression for ...)
生成器迭代器
简单推导,按需消费,可能提前结束
包含 yield 的函数
生成器迭代器
多步计算、递推、分支或需要保存局部状态

列表生成式和生成器表达式都应该保持简洁。当转换规则开始承担复杂控制流时,把逻辑放回普通循环或生成器函数,通常比继续压缩语法更容易维护。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 13:34:46 HTTP/2.0 GET : https://f.mffb.com.cn/a/510799.html
  2. 运行时间 : 0.511380s [ 吞吐率:1.96req/s ] 内存消耗:4,807.40kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=7dc7b05d21fecbdb23914a02bd94d61b
  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.000918s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001482s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.004848s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000641s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001225s ]
  6. SELECT * FROM `set` [ RunTime:0.000507s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001275s ]
  8. SELECT * FROM `article` WHERE `id` = 510799 LIMIT 1 [ RunTime:0.000984s ]
  9. UPDATE `article` SET `lasttime` = 1787290486 WHERE `id` = 510799 [ RunTime:0.097860s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.025866s ]
  11. SELECT * FROM `article` WHERE `id` < 510799 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.022533s ]
  12. SELECT * FROM `article` WHERE `id` > 510799 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.051716s ]
  13. SELECT * FROM `article` WHERE `id` < 510799 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.112442s ]
  14. SELECT * FROM `article` WHERE `id` < 510799 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.027466s ]
  15. SELECT * FROM `article` WHERE `id` < 510799 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.010501s ]
0.515344s