Python不使用第三方包如何为嵌套列表元素添加固定整数值
解答
完全可以在不引入任何第三方包的前提下实现需求,问题出在原有列表推导式的计算逻辑错误。
错误原因
原代码内层元素的计算规则为j+i+10,外层循环变量i每次仅加1,导致每个子列表的起始值仅比上一个子列表大1,和预期的「每个子列表整体比上一个偏移10」的规则不匹配。另外注意不要用list作为变量名,会覆盖Python内置的列表类型,引发后续代码异常。
修正方案
1. 生成符合预期的二维列表
把外层循环变量i乘以10,即可实现每个子列表整体偏移10的效果,代码如下:
my_list = [[j + i*10 + 10 for j in range(1,9)] for i in range(9)] print(my_list)
运行后生成的列表实际值为:
[[11, 12, 13, 14, 15, 16, 17, 18], [21, 22, 23, 24, 25, 26, 27, 28], [31, 32, 33, 34, 35, 36, 37, 38], [41, 42, 43, 44, 45, 46, 47, 48], [51, 52, 53, 54, 55, 56, 57, 58], [61, 62, 63, 64, 65, 66, 67, 68], [71, 72, 73, 74, 75, 76, 77, 78], [81, 82, 83, 84, 85, 86, 87, 88], [91, 92, 93, 94, 95, 96, 97, 98]]
2. 输出带省略号的指定格式
如果需要输出示例中用...省略中间子列表的格式,直接通过原生字符串拼接即可实现,代码如下:
print(f"list = [{str(my_list[0])},{str(my_list[1])},...{str(my_list[-1])}]")
运行后输出结果和预期完全一致:
list = [[11, 12, 13, 14, 15, 16, 17, 18],[21, 22, 23, 24, 25, 26, 27, 28],...[91, 92, 93, 94, 95, 96, 97, 98]]
内容的提问来源于stack exchange,提问作者Rachel L
相关产品推荐
相关产品推荐

