当前位置:首页>python>Python 零基础100天—Day15 内置函数

Python 零基础100天—Day15 内置函数

  • 2026-07-02 16:47:49
Python 零基础100天—Day15 内置函数

🐍 内置函数 — 函数式编程工具箱

🕐预计用时:2-3 小时 | 🎯目标:掌握 map/filter/reduce、zip/enumerate、sorted/reversed、any/all


📖 今日目录

  1. map:批量转换
  2. filter:批量筛选
  3. reduce:累积计算
  4. zip:并行遍历
  5. enumerate:带编号遍历
  6. sorted:排序(进阶)
  7. reversed:反转
  8. any / all:逻辑判断
  9. 实战练习
  10. 今日小结

1. map:批量转换

map(函数, 可迭代对象) — 对每个元素执行同一个函数,返回新结果。

# 传统写法
nums = [1, 2, 3, 4, 5]
squares = []
for n in nums:
    squares.append(n ** 2)
print(squares)  # [1, 4, 9, 16, 25]

# map 写法(一行搞定)
nums = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x ** 2, nums))
print(squares)  # [1, 4, 9, 16, 25]

📦 常见用法

# 字符串转整数
str_nums = ["1", "2", "3", "4", "5"]
int_nums = list(map(int, str_nums))
print(int_nums)  # [1, 2, 3, 4, 5]

# 全部转大写
words = ["hello", "world", "python"]
upper = list(map(str.upper, words))
print(upper)  # ['HELLO', 'WORLD', 'PYTHON']

# 多个列表同步处理
prices = [100, 200, 300]
discounts = [0.9, 0.8, 0.7]
final = list(map(lambda p, d: round(p * d, 2), prices, discounts))
print(final)  # [90.0, 160.0, 210.0]

# 提取对象属性
users = [
    {"name": "张三", "age": 25},
    {"name": "李四", "age": 30},
    {"name": "王五", "age": 28},
]
names = list(map(lambda u: u["name"], users))
print(names)  # ['张三', '李四', '王五']

💡 map 的惰性特性:
map() 返回的是一个迭代器(iterator),不会立即计算。
用 list() 才会真正执行。数据量大时,惰性计算更省内存。


2. filter:批量筛选

filter(函数, 可迭代对象) — 只保留函数返回 True 的元素。

# 传统写法
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens = []
for n in nums:
    if n % 2 == 0:
        evens.append(n)
print(evens)  # [2, 4, 6, 8, 10]

# filter 写法
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens)  # [2, 4, 6, 8, 10]

📦 常见用法

# 过滤空字符串
words = ["hello", "", "world", "", "python"]
non_empty = list(filter(None, words))  # None 作为函数 = 去掉"假值"
print(non_empty)  # ['hello', 'world', 'python']

# 过滤负数
nums = [3, -1, 4, -5, 9, -2, 6]
positive = list(filter(lambda x: x > 0, nums))
print(positive)  # [3, 4, 9, 6]

# 过滤成年人
people = [
    {"name": "张三", "age": 15},
    {"name": "李四", "age": 22},
    {"name": "王五", "age": 17},
    {"name": "赵六", "age": 30},
]
adults = list(filter(lambda p: p["age"] >= 18, people))
names = list(map(lambda p: p["name"], adults))
print(names)  # ['李四', '赵六']

# 组合使用 map + filter
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 筛选偶数,然后求平方
result = list(map(lambda x: x**2, filter(lambda x: x % 2 == 0, nums)))
print(result)  # [4, 16, 36, 64, 100]

💡 filter 里的 None:
filter(None, seq) 会去掉所有"假值":0""None[]{} 等。
这是快速清理数据的利器。


3. reduce:累积计算

reduce(函数, 可迭代对象) — 把一个序列"折叠"成一个值。

from functools import reduce

# 求和:[1, 2, 3, 4, 5] → 1+2+3+4+5 = 15
nums = [1, 2, 3, 4, 5]
total = reduce(lambda a, b: a + b, nums)
print(total)  # 15

# 求积:[1, 2, 3, 4, 5] → 1×2×3×4×5 = 120
product = reduce(lambda a, b: a * b, nums)
print(product)  # 120

# 执行过程(以求和为例):
# 第1步: a=1,  b=2 → 3
# 第2步: a=3,  b=3 → 6
# 第3步: a=6,  b=4 → 10
# 第4步: a=10, b=5 → 15

📦 常见用法

from functools import reduce

# 找最大值
nums = [23, 45, 12, 67, 34, 89, 56]
max_val = reduce(lambda a, b: a if a > b else b, nums)
print(max_val)  # 89

# 拼接字符串
words = ["Python", "is", "awesome"]
sentence = reduce(lambda a, b: a + " " + b, words)
print(sentence)  # "Python is awesome"

# 扁平化嵌套列表
nested = [[1, 2], [3, 4], [5, 6]]
flat = reduce(lambda a, b: a + b, nested)
print(flat)  # [1, 2, 3, 4, 5, 6]

# 带初始值
nums = [1, 2, 3, 4, 5]
total = reduce(lambda a, b: a + b, nums, 100)  # 从 100 开始加
print(total)  # 115

💡 reduce 的初始值:
reduce(func, seq, init) — 第三个参数是初始值。
空列表时必须给初始值,否则报错。建议养成给初始值的习惯。


4. zip:并行遍历

zip(序列1, 序列2, ...) — 把多个序列"拉链式"合并,按位置配对。

# 基本用法
names = ["张三", "李四", "王五"]
scores = [85, 92, 78]

# 配对
paired = list(zip(names, scores))
print(paired)  # [('张三', 85), ('李四', 92), ('王五', 78)]

# 并行遍历
for name, score in zip(names, scores):
    print(f"{name}: {score}分")

# 多个序列
names = ["张三", "李四", "王五"]
math = [85, 92, 78]
english = [90, 88, 95]

for name, m, e in zip(names, math, english):
    print(f"{name}: 数学{m}, 英语{e}")

📦 常见用法

# 创建字典
keys = ["name", "age", "city"]
values = ["张三", 25, "北京"]
person = dict(zip(keys, values))
print(person)  # {'name': '张三', 'age': 25, 'city': '北京'}

# 同时遍历两个列表,找最大值
a = [1, 5, 3, 9, 7]
b = [2, 4, 6, 8, 0]
maxs = [max(x, y) for x, y in zip(a, b)]
print(maxs)  # [2, 5, 6, 9, 7]

# 转置矩阵(行列互换)
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]
transposed = list(zip(*matrix))
print(transposed)  # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

# zip 不等长:以最短的为准
a = [1, 2, 3]
b = [10, 20]
print(list(zip(a, b)))  # [(1, 10), (2, 20)] — 3 被丢弃

# 等长填充:zip_longest
from itertools import zip_longest
print(list(zip_longest(a, b, fillvalue=0)))  # [(1, 10), (2, 20), (3, 0)]

5. enumerate:带编号遍历

enumerate(序列) — 遍历时同时拿到索引和值,不用手写 range(len())

# ❌ 传统写法(丑)
fruits = ["苹果", "香蕉", "橘子"]
for i in range(len(fruits)):
    print(f"{i}: {fruits[i]}")

# ✅ enumerate 写法(优雅)
for i, fruit in enumerate(fruits):
    print(f"{i}: {fruit}")

# 自定义起始编号
for i, fruit in enumerate(fruits, start=1):
    print(f"第{i}个: {fruit}")

📦 常见用法

# 找元素的索引
words = ["apple", "banana", "cherry", "banana"]
for i, word in enumerate(words):
    if word == "banana":
        print(f"找到 banana 在索引 {i}")
        break

# 带编号的排行榜
scores = {"张三": 85, "李四": 92, "王五": 78, "赵六": 95}
ranked = sorted(scores.items(), key=lambda x: -x[1])
for rank, (name, score) in enumerate(ranked, start=1):
    medal = "🥇" if rank == 1 else "🥈" if rank == 2 else "🥉" if rank == 3 else f"#{rank}"
    print(f"  {medal} {name}: {score}分")

# 给列表加编号
items = ["Python", "Java", "C++"]
numbered = list(enumerate(items, start=1))
print(numbered)  # [(1, 'Python'), (2, 'Java'), (3, 'C++')]

💡 enumerate vs range(len()):
enumerate 更 Pythonic,更高效,更安全。
面试中写 range(len()) 会被扣印象分 😅


6. sorted:排序(进阶)

sorted() 的 key 参数是排序的灵魂——告诉 Python 按什么排。

# 基本排序
nums = [3, 1, 4, 1, 5, 9, 2, 6]
print(sorted(nums))           # 升序
print(sorted(nums, reverse=True))  # 降序

# 按字符串长度排序
words = ["banana", "apple", "hi", "cherry", "a"]
print(sorted(words, key=len))  # ['a', 'hi', 'apple', 'banana', 'cherry']

# 忽略大小写排序
words = ["Banana", "apple", "Cherry", "date"]
print(sorted(words, key=str.lower))  # ['apple', 'Banana', 'Cherry', 'date']

🎯 多级排序

# 先按年龄,再按姓名
people = [
    ("张三", 25), ("李四", 22), ("王五", 25), ("赵六", 22)
]
result = sorted(people, key=lambda p: (p[1], p[0]))
print(result)
# [('李四', 22), ('赵六', 22), ('张三', 25), ('王五', 25)]

# 复杂排序:成绩降序,同分按姓名升序
students = [
    ("张三", 85), ("李四", 92), ("王五", 85), ("赵六", 92)
]
result = sorted(students, key=lambda s: (-s[1], s[0]))
print(result)
# [('李四', 92), ('赵六', 92), ('张三', 85), ('王五', 85)]

🎯 operator 模块(更优雅的 key)

from operator import itemgetter, attrgetter

# itemgetter: 按字典的某个键排序
users = [
    {"name": "张三", "age": 25, "score": 85},
    {"name": "李四", "age": 22, "score": 92},
    {"name": "王五", "age": 28, "score": 78},
]

by_score = sorted(users, key=itemgetter("score"), reverse=True)
print([u["name"] for u in by_score])  # ['李四', '张三', '王五']

# 多字段
by_age_score = sorted(users, key=itemgetter("age", "score"))
print([(u["name"], u["age"]) for u in by_age_score])

7. reversed:反转

# 反转列表
nums = [1, 2, 3, 4, 5]
print(list(reversed(nums)))  # [5, 4, 3, 2, 1]

# 反转字符串
s = "hello"
print("".join(reversed(s)))  # "olleh"

# 倒序遍历
for i in reversed(range(1, 6)):
    print(i, end=" ")  # 5 4 3 2 1

# reversed vs [::-1]
# reversed() 返回迭代器(惰性,省内存)
# [::-1] 创建新列表(立即,占内存)
nums = [1, 2, 3, 4, 5]
print(nums[::-1])        # [5, 4, 3, 2, 1](新列表)
print(list(reversed(nums))) # [5, 4, 3, 2, 1](迭代器转列表)

8. any / all:逻辑判断

✅ any:有一个为 True 就行

# any(iterable) — 只要有一个元素为 True,就返回 True
print(any([0, 0, 1, 0]))   # True(有一个 1)
print(any([0, 0, 0, 0]))   # False(全是 0)
print(any([False, None, "", 42]))  # True(42 是真值)

# 实用场景
nums = [1, 3, 5, 7, 8]
print(any(n % 2 == 0 for n in nums))  # True(有偶数)

scores = [45, 60, 78, 30]
print(any(s >= 60 for s in scores))  # True(有人及格)

# 检查是否有任何负数
data = [10, -3, 25, 0, -1]
print(any(x < 0 for x in data))  # True

✅ all:全部为 True 才行

# all(iterable) — 所有元素都为 True,才返回 True
print(all([1, 2, 3, 4]))   # True(全非零)
print(all([1, 0, 3, 4]))   # False(有一个 0)
print(all([True, True, True]))  # True

# 实用场景
nums = [2, 4, 6, 8, 10]
print(all(n % 2 == 0 for n in nums))  # True(全是偶数)

scores = [60, 78, 92, 85]
print(all(s >= 60 for s in scores))  # True(全部及格)

# 检查是否所有用户都有邮箱
users = [
    {"name": "张三", "email": "z@test.com"},
    {"name": "李四", "email": "l@test.com"},
    {"name": "王五"},  # 没有邮箱
]
print(all("email" in u for u in users))  # False
函数
含义
全空时返回
any()
有一个为 True
False
all()
全部为 True
True

💡 any/all 的短路特性:
any 遇到第一个 True 就停,all 遇到第一个 False 就停。
配合生成器表达式,效率极高!


9. 实战练习

🎯 练习 1:成绩分析器(综合运用)

from functools import reduce

# 原始数据
students = [
    {"name": "张三", "math": 85, "english": 90, "python": 88},
    {"name": "李四", "math": 92, "english": 78, "python": 95},
    {"name": "王五", "math": 78, "english": 85, "python": 82},
    {"name": "赵六", "math": 95, "english": 92, "python": 90},
    {"name": "孙七", "math": 60, "english": 65, "python": 70},
]

# 1. 计算每人平均分(map)
subjects = ["math", "english", "python"]
for s in students:
    s["avg"] = round(sum(s[sub] for sub in subjects) / len(subjects), 1)

# 2. 筛选平均分 >= 80 的学生(filter)
good_students = list(filter(lambda s: s["avg"] >= 80, students))

# 3. 按平均分降序排序(sorted)
ranked = sorted(good_students, key=lambda s: -s["avg"])

# 4. 生成排行榜(enumerate)
print("🏆 优秀学生排行榜(平均分 ≥ 80)")
print("-" * 45)
for rank, s in enumerate(ranked, start=1):
    medal = "🥇🥈🥉"[rank-1] if rank <= 3 else f"#{rank}"
    print(f"  {medal} {s['name']:4s} | 均分 {s['avg']:5.1f} | 数学{s['math']} 英语{s['english']} Python{s['python']}")

# 5. 全班各科平均分(zip + map)
class_avg = {}
for sub in subjects:
    scores = list(map(lambda s: s[sub], students))
    class_avg[sub] = round(sum(scores) / len(scores), 1)

print(f"\n📊 全班各科平均分:")
for sub, avg in class_avg.items():
    print(f"  {sub:8s}: {avg}")

# 6. 检查是否有满分(any)
print(f"\n🔍 有任何科目满分吗? {any(s[sub] == 100 for s in students for sub in subjects)}")

# 7. 检查是否全部及格(all)
print(f"✅ 全部及格吗? {all(s[sub] >= 60 for s in students for sub in subjects)}")

🎯 练习 2:数据清洗管道

from functools import reduce

# 模拟原始数据(脏数据)
raw_data = [
    "  张三, 25, 85.5 ",
    "李四, , 92.0",
    "王五, 28, N/A",
    " 赵六, 30, 78.5 ",
    ", , ",
    "孙七, 22, 88.0",
]

# 清洗管道:每一步都是一个函数
def strip_lines(lines):
    """去除首尾空白"""
    return list(map(str.strip, lines))

def remove_empty(lines):
    """去除空行"""
    return list(filter(lambda l: l and not all(c.strip() == '' for c in l.split(',')), lines))

def parse_records(lines):
    """解析为字典"""
    records = []
    for line in lines:
        parts = [p.strip() for p in line.split(",")]
        if len(parts) == 3 and parts[0] and parts[1] and parts[2] not in ("N/A", ""):
            try:
                records.append({
                    "name": parts[0],
                    "age": int(parts[1]),
                    "score": float(parts[2]),
                })
            except ValueError:
                pass
    return records

def filter_valid(records):
    """筛选有效记录"""
    return list(filter(lambda r: r["age"] > 0 and r["score"] > 0, records))

def sort_by_score(records):
    """按分数排序"""
    return sorted(records, key=lambda r: -r["score"])

# 管道:raw_data → strip → remove_empty → parse → filter → sort
pipeline = [strip_lines, remove_empty, parse_records, filter_valid, sort_by_score]
clean_data = reduce(lambda data, func: func(data), pipeline, raw_data)

print("📋 清洗后的数据:")
for r in clean_data:
    print(f"  {r['name']} | {r['age']}岁 | {r['score']}分")

🎯 练习 3:矩阵运算(zip 实战)

# 矩阵加法
def matrix_add(A, B):
    return [[a + b for a, b in zip(row_a, row_b)] for row_a, row_b in zip(A, B)]

# 矩阵转置
def matrix_transpose(M):
    return [list(row) for row in zip(*M)]

# 矩阵乘法
def matrix_multiply(A, B):
    B_T = matrix_transpose(B)
    return [
        [sum(a * b for a, b in zip(row_a, col_b)) for col_b in B_T]
        for row_a in A
    ]

# 测试
A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]

print("A + B =")
for row in matrix_add(A, B):
    print(f"  {row}")

print("\nA 的转置 =")
for row in matrix_transpose(A):
    print(f"  {row}")

print("\nA × B =")
for row in matrix_multiply(A, B):
    print(f"  {row}")

10. 今日小结

函数
作用
返回
map(func, seq)
批量转换
迭代器
filter(func, seq)
批量筛选
迭代器
reduce(func, seq)
累积计算
单个值
zip(*seqs)
并行配对
迭代器(元组)
enumerate(seq)
带编号遍历
迭代器(元组)
sorted(seq, key=)
排序
新列表
reversed(seq)
反转
迭代器
any(seq)
有一个 True
bool
all(seq)
全部 True
bool

🧠 记忆口诀:
map 转换 filter 筛,reduce 累积算出来。
zip 拉链 enumerate,sorted 排序 reversed 倒。
any 一个 all 全部,函数式编程真好用。

🔮 预告: Day 16 文件操作 — open()、读写模式、with 语句。让程序和文件对话!

轻松时刻:

请在微信客户端打开

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 09:38:18 HTTP/2.0 GET : https://f.mffb.com.cn/a/495465.html
  2. 运行时间 : 0.100607s [ 吞吐率:9.94req/s ] 内存消耗:4,632.59kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9f99bd138090eba6a41441a9ffaf3738
  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.000681s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000850s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000345s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000292s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000519s ]
  6. SELECT * FROM `set` [ RunTime:0.000223s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000543s ]
  8. SELECT * FROM `article` WHERE `id` = 495465 LIMIT 1 [ RunTime:0.000660s ]
  9. UPDATE `article` SET `lasttime` = 1783042698 WHERE `id` = 495465 [ RunTime:0.014947s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000256s ]
  11. SELECT * FROM `article` WHERE `id` < 495465 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000406s ]
  12. SELECT * FROM `article` WHERE `id` > 495465 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000411s ]
  13. SELECT * FROM `article` WHERE `id` < 495465 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006150s ]
  14. SELECT * FROM `article` WHERE `id` < 495465 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000795s ]
  15. SELECT * FROM `article` WHERE `id` < 495465 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001179s ]
0.102203s