Python中如何对二维列表的字符串元素执行两次拆分提取整数?
正确实现方法
错误原因
- 你定义的
my_array是二维嵌套列表,第0个元素是表头行,没有实际比分数据。原代码直接对整个二维列表取my_array[5](整个列表只有3个元素,索引5不存在,会直接报索引越界错误),逻辑完全错误。 split方法不会修改原字符串,原代码没有存储拆分后的结果,操作完全无效。- 拆分顺序错误:需要先按空格拆分整段比分字符串,取出最后一节的子串,再对子串按
.拆分。
正确代码示例
# 首先修正你的二维数组定义(原写法没有在外层套[],本身就是语法错误) my_array = [ ['Tigers', '2021', 'Round', 'Turf', 'Opponent', 'Quarter scores', 'Totalfor', 'Quarter opponent score', 'TotalOpp', 'Result', 'Margin', 'Record', 'Venue', 'Crowd', 'Date'], ['Tigers', '2021', 'R1', 'H', 'Lions', '4.4 11.7 6.9 13.11', '103', '2.3 5.5 10.8 13.13', '91', 'W', '12', '1-0-0', 'Athenian', '26985', 'Sat 20-Mar-2021 4:05 PM'], ['Tigers', '2021', 'R2', 'A', 'Grizzlies', '3.1 4.7 5.14 10.12', '88', '4.1 9.6 15.11 18.13', '121', 'L', '-33', '1-0-1', 'Soccer stadium', '23946', 'Sat 27-Mar-2021 1:45 PM'] ] # 从第1行开始遍历,跳过表头行 for row in my_array[1:]: # 处理己方第四节比分:先按空格拆分取最后一段,再按点拆分转整数 home_q4 = row[5].split(' ')[-1].split('.') home_q4_goal, home_q4_behind = int(home_q4[0]), int(home_q4[1]) # 处理对手第四节比分 opp_q4 = row[7].split(' ')[-1].split('.') opp_q4_goal, opp_q4_behind = int(opp_q4[0]), int(opp_q4[1]) # 可打印验证结果,也可以存到其他变量用于后续总分校验 print(f"轮次{row[2]} 己方第四节:{home_q4_goal}记进球 {home_q4_behind}分落后") print(f"轮次{row[2]} 对手第四节:{opp_q4_goal}记进球 {opp_q4_behind}分落后\n")
运行效果
执行后会输出:
轮次R1 己方第四节:13记进球 11分落后 轮次R1 对手第四节:13记进球 13分落后 轮次R2 己方第四节:10记进球 12分落后 轮次R2 对手第四节:18记进球 13分落后
内容的提问来源于stack exchange,提问作者manavhs13
相关产品推荐
相关产品推荐

