当前位置:首页>python>Python列表:有序的数据容器

Python列表:有序的数据容器

  • 2026-03-10 06:29:43
Python列表:有序的数据容器

列表就像你的"购物清单" - 可以增加、删除、排序,还能快速找到需要的东西

🎯 本章目标

学完本章,你会:

  1. ✅ 理解列表是什么以及为什么需要它

  2. ✅ 掌握列表的创建和基本操作

  3. ✅ 熟练使用列表的各种方法

  4. ✅ 理解列表推导式的用法

  5. ✅ 能在测试工作中灵活使用列表


🎪 开篇:为什么需要列表?

想象一下这个场景:你需要记录10个测试用例的执行结果

没有列表的世界

result1 = "passed"result2 = "passed"result3 = "failed"result4 = "passed"result5 = "failed"result6 = "passed"result7 = "passed"result8 = "passed"result9 = "passed"result10 = "failed"# 想统计通过率?你得一个一个数...

有列表的世界

test_results = ["passed""passed""failed""passed""failed""passed""passed""passed""passed""failed"]# 统计通过率?一行代码搞定!pass_count = test_results.count("passed")pass_rate = pass_count / len(test_results) * 100

列表让管理多个数据变得简单


📦 什么是列表?

直观理解列表就像一个可以装很多东西的箱子

  • 箱子 = 列表

  • 箱子里的东西 = 列表的元素

  • 箱子有编号 = 列表的索引(从0开始)

  • 可以往箱子里加东西、拿东西、换东西

技术定义

列表是Python中的一种有序、可变的数据结构,可以存储任意类型的数据。

四个关键特性

  1. 有序:元素有固定顺序,先放进去的在前面

  2. 可变:可以修改、添加、删除元素

  3. 可重复:可以包含重复的元素

  4. 类型灵活:可以包含不同类型的元素


➕ 创建列表:三种方法

方法1:方括号直接创建(最常用)

# 空列表empty_list = []# 包含元素的列表fruits = ["苹果""香蕉""橙子"]numbers = [12345]# 混合类型的列表mixed = ["文本"1233.14True, None]# 测试相关的列表test_cases = ["登录测试""注册测试""支付测试"]status_codes = [200301400401403404500]

方法2:使用list()函数转换

# 从字符串创建list("hello")  # ['h', 'e', 'l', 'l', 'o']# 从range创建list(range(5))  # [0, 1, 2, 3, 4]# 从元组创建tuple_data = (123)list_from_tuple = list(tuple_data)  # [1, 2, 3]# 实战:生成测试用例编号test_ids = list(range(111))  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]test_cases = [f"TC{id:03d}" for id in test_ids]  # ['TC001', 'TC002', ...]

方法3:列表推导式(高级创建)

# 生成1-10的平方squares = [x**2 for x in range(1, 11)]# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]# 生成测试数据test_users = [f"user{i}" for i in range(1, 6)]# ['user1''user2''user3''user4''user5']

🔍 访问列表元素

通过索引访问; 列表的索引从0开始,就像楼层编号(一楼是1,但索引0是第一个元素)

fruits = ["苹果""香蕉""橙子""葡萄""芒果"]# 正索引(从左到右)print(fruits[0])  # 苹果(第一个)print(fruits[1])  # 香蕉(第二个)print(fruits[2])  # 橙子(第三个)# 负索引(从右到左)print(fruits[-1])  # 芒果(最后一个)print(fruits[-2])  # 葡萄(倒数第二个)print(fruits[-3])  # 橙子(倒数第三个)# 测试示例test_steps = ["打开浏览器""输入网址""输入用户名""输入密码""点击登录"]print(f"第一步:{test_steps[0]}")     # 打开浏览器print(f"最后一步:{test_steps[-1]}")  # 点击登录

切片操作:获取子列表

# 基本语法:list[start:end:step]# start: 开始索引(包含)# end: 结束索引(不包含)# step: 步长(默认为1)numbers = [0123456789]# 获取前3个first_three = numbers[:3]  # [0, 1, 2]# 获取第3到第6个middle = numbers[2:6]  # [2, 3, 4, 5]# 获取最后3个last_three = numbers[-3:]  # [7, 8, 9]# 获取所有偶数evens = numbers[::2]  # [0, 2, 4, 6, 8]# 反转列表reversed_list = numbers[::-1]  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]# 实战:分批执行测试all_tests = ["T1""T2""T3""T4""T5""T6""T7""T8""T9""T10"]# 第一批:前5个batch1 = all_tests[:5]  # ['T1', 'T2', 'T3', 'T4', 'T5']# 第二批:后5个batch2 = all_tests[5:]  # ['T6', 'T7', 'T8', 'T9', 'T10']# 每隔一个执行一个alternate = all_tests[::2]  # ['T1', 'T3', 'T5', 'T7', 'T9']

获取列表长度

fruits = ["苹果""香蕉""橙子""葡萄""芒果"]length = len(fruits)  # 5test_cases = ["登录""注册""支付""搜索""购物车""订单"]test_count = len(test_cases)  # 6print(f"共有{test_count}个测试用例")

✏️ 修改列表元素

修改单个元素

# 直接通过索引修改fruits = ["苹果""香蕉""橙子"]fruits[1] = "芒果"  # 把"香蕉"改成"芒果"# 结果:["苹果", "芒果", "橙子"]# 实战:更新测试状态test_status = ["待执行""执行中""待执行""已完成"]test_status[1] = "已通过"  # 第二个测试通过test_status[2] = "执行中"  # 第三个测试开始执行

批量修改(切片赋值)

# 修改一个范围内的元素numbers = [012345]numbers[1:4] = [102030]  # 修改索引1-3的元素# 结果:[0, 10, 20, 30, 4, 5]# 可以替换成不同数量的元素numbers = [12345]numbers[1:3] = [203040]  # 用3个元素替换2个元素# 结果:[1, 20, 30, 40, 4, 5]# 实战:批量更新测试结果test_results = ["待执行""待执行""待执行""待执行""待执行"]test_results[:3] = ["通过""失败""通过"]  # 更新前3个测试的结果

➕ 添加元素到列表

append():在末尾添加一个元素

fruits = ["苹果""香蕉""橙子"]fruits.append("葡萄")  # 在末尾添加"葡萄"# 结果:["苹果""香蕉""橙子""葡萄"]# 可以添加任何类型fruits.append(123)  # ["苹果""香蕉""橙子""葡萄"123]# 实战:记录测试用例test_cases = ["登录测试""注册测试"]test_cases.append("支付测试")  # 添加新测试用例test_cases.append("搜索测试")  # 再添加一个

insert():在指定位置插入元素

fruits = ["苹果""香蕉""橙子"]fruits.insert(1, "芒果")  # 在索引1的位置插入"芒果"# 结果:["苹果", "芒果", "香蕉", "橙子"]# 实战:插入高优先级测试test_queue = ["TC002""TC003""TC004"]test_queue.insert(0, "TC001")  # 在最前面插入test_queue.insert(2, "TC001-紧急")  # 在第三个位置插入紧急测试

extend():添加多个元素

fruits = ["苹果""香蕉"]more_fruits = ["橙子""葡萄""芒果"]fruits.extend(more_fruits)  # 添加多个元素# 结果:["苹果", "香蕉", "橙子", "葡萄", "芒果"]# 等价于fruits = ["苹果""香蕉"]fruits += ["橙子""葡萄""芒果"]  # 使用+=# 实战:批量导入测试用例existing_tests = ["登录测试""注册测试"]new_tests = ["支付测试""搜索测试""购物车测试"]existing_tests.extend(new_tests)  # 批量添加

❌ 从列表删除元素

remove():删除指定值的元素

fruits = ["苹果""香蕉""橙子""香蕉""葡萄"]fruits.remove("香蕉")  # 删除第一个"香蕉"# 结果:["苹果", "橙子", "香蕉", "葡萄"]# 如果要删除的值不存在,会报错# fruits.remove("西瓜")  # ValueError: list.remove(x): x not in list# 实战:删除已完成的测试pending_tests = ["登录测试""注册测试""支付测试""搜索测试"]pending_tests.remove("登录测试")  # 登录测试已完成

pop():删除指定位置的元素

fruits = ["苹果""香蕉""橙子""葡萄"]# 删除最后一个元素last_fruit = fruits.pop()  # 返回"葡萄",fruits变成["苹果", "香蕉", "橙子"]# 删除指定位置的元素second_fruit = fruits.pop(1)  # 返回"香蕉",fruits变成["苹果", "橙子"]# 实战:处理测试队列test_queue = ["TC001""TC002""TC003""TC004"]current_test = test_queue.pop(0)  # 取出并执行第一个测试print(f"正在执行: {current_test}")  # TC001

del语句:删除元素或切片

fruits = ["苹果""香蕉""橙子""葡萄""芒果"]# 删除单个元素del fruits[1]  # 删除索引1的元素("香蕉")# 结果:["苹果", "橙子", "葡萄", "芒果"]# 删除切片del fruits[1:3]  # 删除索引1-2的元素# 结果:["苹果", "芒果"]# 删除整个列表del fruits  # 列表被删除,不能再访问# 实战:清理测试数据test_results = ["pass""fail""pass""error""pass"]del test_results[3]  # 删除错误结果del test_results[-2:]  # 删除最后两个结果

clear():清空列表

fruits = ["苹果""香蕉""橙子"]fruits.clear()  # 清空所有元素# 结果:[]# 实战:重置测试环境test_queue = ["TC001""TC002""TC003""TC004"]print(f"当前队列: {test_queue}")test_queue.clear()  # 清空队列print(f"清空后: {test_queue}")  # []

🔍 查找列表元素

index():查找元素的位置

fruits = ["苹果""香蕉""橙子""葡萄""香蕉"]# 查找第一个"香蕉"的位置pos = fruits.index("香蕉")  # 1# 从指定位置开始查找pos2 = fruits.index("香蕉", 2)  # 从索引2开始找,结果是4# 如果元素不存在,会报错# pos = fruits.index("西瓜")  # ValueError: '西瓜' is not in list# 实战:查找测试用例test_cases = ["登录测试""注册测试""支付测试""搜索测试""支付测试"]try:    pos = test_cases.index("支付测试")    print(f"支付测试在位置: {pos}")except ValueError:    print("支付测试不存在")

count():统计元素出现的次数

fruits = ["苹果""香蕉""橙子""香蕉""葡萄""香蕉"]# 统计"香蕉"出现的次数banana_count = fruits.count("香蕉")  # 3apple_count = fruits.count("苹果")   # 1mango_count = fruits.count("芒果")   # 0# 实战:统计测试结果test_results = ["passed""failed""passed""passed""failed""passed"]passed_count = test_results.count("passed")  # 4failed_count = test_results.count("failed")  # 2total = len(test_results)  # 6pass_rate = passed_count / total * 100print(f"通过率: {pass_rate:.1f}%")  # 66.7%

in运算符:检查元素是否存在

fruits = ["苹果""香蕉""橙子"]# 检查元素是否存在has_apple = "苹果" in fruits  # Truehas_mango = "芒果" in fruits  # Falsenot_has_mango = "芒果" not in fruits  # True# 实战:检查测试用例是否存在test_cases = ["登录测试""注册测试""支付测试"]if "安全测试" in test_cases:    print("安全测试已包含")else:    print("需要添加安全测试")if "登录测试" not in test_cases:    test_cases.append("登录测试")

🔄 列表排序

sort():原地排序(修改原列表)

numbers = [3141592]# 升序排序numbers.sort()  # [1, 1, 2, 3, 4, 5, 9]# 降序排序numbers.sort(reverse=True)  # [9, 5, 4, 3, 2, 1, 1]# 字符串排序fruits = ["banana""Apple""cherry""date"]fruits.sort()  # ['Apple', 'banana', 'cherry', 'date'](大写字母在前)fruits.sort(key=str.lower)  # 忽略大小写:['Apple', 'banana', 'cherry', 'date']# 实战:按执行时间排序测试用例test_data = [    ("登录测试"5.2),    ("注册测试"3.8),    ("支付测试"8.1),    ("搜索测试"1.5)]# 按执行时间升序排序test_data.sort(key=lambda x: x[1])  # 按第二个元素(时间)排序# 结果:[('搜索测试', 1.5), ('注册测试', 3.8), ('登录测试', 5.2), ('支付测试', 8.1)]# 按测试名称排序test_data.sort(key=lambda x: x[0])  # 按第一个元素(名称)排序

sorted():返回新列表(不修改原列表)

numbers = [3141592]# 返回排序后的新列表sorted_numbers = sorted(numbers)  # [1, 1, 2, 3, 4, 5, 9]# numbers不变:[3, 1, 4, 1, 5, 9, 2]# 降序排序desc_numbers = sorted(numbers, reverse=True)  # [9, 5, 4, 3, 2, 1, 1]# 实战:排序测试用例但不修改原列表test_cases = ["支付测试""登录测试""注册测试""搜索测试"]sorted_cases = sorted(test_cases)  # ['登录测试', '搜索测试', '支付测试', '注册测试']# test_cases不变:['支付测试', '登录测试', '注册测试', '搜索测试']

reverse():反转列表顺序

numbers = [1, 2, 3, 4, 5]numbers.reverse()  # [5, 4, 3, 2, 1]# 注意:reverse()是原地反转# 如果要创建新列表,可以用切片numbers = [1, 2, 3, 4, 5]reversed_numbers = numbers[::-1]  # [5, 4, 3, 2, 1]# numbers不变:[1, 2, 3, 4, 5]# 实战:反转测试执行顺序test_queue = ["TC001""TC002""TC003""TC004"]test_queue.reverse()  # ['TC004', 'TC003', 'TC002', 'TC001']

🧮 列表推导式:简洁的创建方式

基本语法

# 传统方式squares = []for i in range(5):    squares.append(i**2)   #[0, 1, 4, 9, 16]# 列表推导式 squares = [i**2 for i in range(5)] #[0, 1, 4, 9, 16]

带条件的列表推导式

# 生成1-10的偶数evens = [x for x in range(111) if x % 2 == 0]  # [2, 4, 6, 8, 10]# 生成1-10的奇数平方odd_squares = [x**2 for x in range(111) if x % 2 == 1]  # [1, 9, 25, 49, 81]# 实战:生成测试数据# 生成10个测试用户test_users = [f"user{i:03d}" for i in range(111)]# ['user001', 'user002', ..., 'user010']# 生成测试邮箱test_emails = [f"test{i:03d}@example.com" for i in range(100)]# ['test001@example.com', 'test002@example.com', ...]

多个for循环

# 生成坐标对coordinates = [(x, y) for x in range(3) for y in range(3)]# [(0,0), (0,1), (0,2), (1,0), (1,1), (1,2), (2,0), (2,1), (2,2)]# 实战:生成测试组合browsers = ["Chrome""Firefox""Safari"]resolutions = ["1920x1080""1366x768""375x812"]test_combinations = [(browser, res) for browser in browsers for res in resolutions]# [('Chrome', '1920x1080'), ('Chrome', '1366x768'), ...]

实战应用

# 筛选失败的测试all_results = ["passed""failed""passed""error""failed""passed"]failed_results = [result for result in all_results if result in ["failed""error"]]# ['failed', 'error', 'failed']# 转换测试结果格式results = ["PASS""FAIL""PASS""ERROR"]formatted = ["✅ 通过" if r == "PASS" else "❌ 失败" if r == "FAIL" else "⚠️ 错误" for r in results]# ['✅ 通过', '❌ 失败', '✅ 通过', '⚠️ 错误']# 提取测试执行时间test_data = [    ("登录测试"5.2"passed"),    ("注册测试"3.8"failed"),    ("支付测试"8.1"passed")]durations = [time for _, time, _ in test_data]  # [5.2, 3.8, 8.1]

📊 列表常用函数

len():获取长度

fruits = ["苹果""香蕉""橙子"]length = len(fruits)  # 3test_cases = ["登录测试""注册测试""支付测试""搜索测试""购物车测试"]total_cases = len(test_cases)  # 5print(f"共有{total_cases}个测试用例")

max()/min():最大值/最小值

numbers = [3, 1, 4, 1, 5, 9, 2]max_num = max(numbers)  # 9min_num = min(numbers)  # 1# 字符串比较(按ASCII码)words = ["apple""banana""cherry"]max_word = max(words)  # "cherry"min_word = min(words)  # "apple"# 实战:找最长执行时间的测试test_times = [5.2, 3.8, 8.1, 1.5, 6.7]longest = max(test_times)  # 8.1shortest = min(test_times)  # 1.5print(f"最长执行时间: {longest}秒")

sum():求和

numbers = [12345]total = sum(numbers)  # 15# 实战:计算总测试时间test_times = [5.23.88.11.56.7]total_time = sum(test_times)  # 25.3avg_time = total_time / len(test_times)  # 5.06print(f"总测试时间: {total_time}秒,平均: {avg_time:.1f}秒")

any()/all():条件检查

# any():至少一个为Truetest_results = [TrueFalseFalseTrue]has_pass = any(test_results)  # True# all():所有都为Trueall_pass = all(test_results)  # False# 实战:检查测试结果results = ["passed""passed""failed""passed"]all_passed = all(r == "passed" for r in results)  # Falseany_failed = any(r != "passed" for r in results)  # True

🔁 遍历列表

基本遍历

fruits = ["苹果""香蕉""橙子""葡萄"]# 遍历元素for fruit in fruits:    print(f"我喜欢吃{fruit}")# 遍历索引和元素for i, fruit in enumerate(fruits):    print(f"第{i}个水果是{fruit}")# 第0个水果是苹果# 第1个水果是香蕉# ...# 从1开始编号for i, fruit in enumerate(fruits, 1):    print(f"水果{i}{fruit}")

实战:遍历测试用例

# 遍历测试用例test_cases = ["登录测试""注册测试""支付测试""搜索测试"]print("开始执行测试套件...")for i, test_case in enumerate(test_cases, 1):    print(f"\n[{i}/{len(test_cases)}] 执行测试: {test_case}")    # 这里可以调用实际的测试函数    # result = execute_test(test_case)    # print(f"结果: {result}")print("✅ 所有测试执行完成")

同时遍历多个列表

# zip()函数:同时遍历多个列表test_names = ["登录测试""注册测试""支付测试"]test_times = [5.23.88.1]test_results = ["passed""passed""failed"]print("测试报告:")for name, time, result in zip(test_names, test_times, test_results):    status = "✅" if result == "passed" else "❌"    print(f"{status}{name} - 用时: {time}秒")

🧩 总结:列表的常用操作

操作

方法/语法

示例

结果

创建

[]或 list()

[1, 2, 3]

[1, 2, 3]

访问

list[index]

list[0]

第一个元素

切片

list[start:end]

list[1:3]

索引1-2的元素

长度

len(list)

len([1,2,3])

3

添加

append()insert()extend()

list.append(4)

末尾添加4

删除

remove()pop()delclear()

list.remove(2)

删除值为2的元素

查找

index()count()in

list.index(3)

3的位置

排序

sort()sorted()

list.sort()

升序排序

反转

reverse()

list.reverse()

反转顺序

最大值

max(list)

max([1,5,3])

5

最小值

min(list)

min([1,5,3])

1

求和

sum(list)

sum([1,2,3])

6

遍历

for item in list:

遍历每个元素

-


🎉 恭喜!列表掌握完成;现在你已经学会了Python中最重要、最常用的数据结构之一!

关键收获

  1. ✅ 创建列表:三种方法创建列表

  2. ✅ 访问元素:索引、切片、获取长度

  3. ✅ 修改列表:增、删、改各种操作

  4. ✅ 查找排序:查找元素、排序列表

  5. ✅ 列表推导式:简洁创建列表

  6. ✅ 实战应用:在测试中灵活使用列表

列表是自动化测试的基础,你会经常用它来:

  • 管理测试用例

  • 存储测试数据

  • 记录测试结果

  • 批量执行测试

下一章预告:字典 - 键值对的数据结构

你会学习如何用字典存储结构化数据,比如测试用例详情、用户信息、接口参数等。

准备好了吗?让我们继续前进!🚀

记住:列表要多用才能掌握。尝试用列表改写你之前的代码,看看能不能变得更简洁、更高效。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 21:56:16 HTTP/2.0 GET : https://f.mffb.com.cn/a/478389.html
  2. 运行时间 : 0.214819s [ 吞吐率:4.66req/s ] 内存消耗:5,145.94kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0f02f36083ab78f3f64582d91af64264
  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.000973s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001493s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000594s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.003162s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001205s ]
  6. SELECT * FROM `set` [ RunTime:0.000507s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001216s ]
  8. SELECT * FROM `article` WHERE `id` = 478389 LIMIT 1 [ RunTime:0.001298s ]
  9. UPDATE `article` SET `lasttime` = 1774619777 WHERE `id` = 478389 [ RunTime:0.025477s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000597s ]
  11. SELECT * FROM `article` WHERE `id` < 478389 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001687s ]
  12. SELECT * FROM `article` WHERE `id` > 478389 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000885s ]
  13. SELECT * FROM `article` WHERE `id` < 478389 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.020298s ]
  14. SELECT * FROM `article` WHERE `id` < 478389 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001645s ]
  15. SELECT * FROM `article` WHERE `id` < 478389 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002451s ]
0.218130s