IndexError :Replacement index 1 out of range for positional args tuple

Posted 夜未至

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IndexError :Replacement index 1 out of range for positional args tuple相关的知识,希望对你有一定的参考价值。

IndexError->索引异常

报错代码

在进行字符串格式化时报错

# 通过列表索引设置参数
my_list = ['单身狗', '20']
print("姓名:0[0], 年龄 0[1]".format(my_list))#正常的
print("姓名:[0], 年龄 [1]".format(my_list))#异常的

我尝试使用这些语句学习*和**的区别,结果刚刚运行就报错了。

异常描述

发生异常: IndexError
Replacement index 1 out of range for positional args tuple
翻译:
位置参数元组的替换索引 1 超出范围
好像是因为参数数量不对等导致的错误

解决

我采取了format的默认格式化的方式来解决这个问题,代码如下

print("姓名:, 年龄 ".format(*my_list))
#输出结果为:姓名:单身狗, 年龄 20

理由:
单星号(*)的用法–>定义函数时使用:将参数以元组(tuple)的形式导入(收集参数)!
如:

def fun(*args):          #*可以接收任意多个
    print(args)           #此处的args又把接收的任意多个数据放为一个整体:元组中

fun(1,2,3,4)
# 输出为:(1, 2, 3, 4)

既然是元组的索引错误,那就用元组的方式导入,当然这个方法需要借助format的默认格式化方式,format的默认格式化不加位置参数

print(''.format('默认格式化'))

当然我的代码比较简单,需要根据自己的代码做出相对应的调整

sed -i 's/Search_String/Replacement_String/g' Input_File sed详细手册

本文列出的十五个例子可以帮助你掌握 sed 命令。
如果要使用 sed 命令删除文件中的行,去下面的文章。
注意:由于这是一篇演示文章,我们使用不带 -i 选项的 sed 命令,该选项会在 Linux 终端中删除行并打印文件内容。
但是,在实际环境中如果你想删除源文件中的行,使用带 -i 选项的 sed 命令。
常见的 sed 替换字符串的语法。

sed -i ‘s/Search_String/Replacement_String/g‘ Input_File
 

以上是关于IndexError :Replacement index 1 out of range for positional args tuple的主要内容,如果未能解决你的问题,请参考以下文章

Python错误IndexError:只有整数

无放回抽样(Sampling without replacement)

sed -i 's/Search_String/Replacement_String/g' Input_File sed详细手册

sed -i 's/Search_String/Replacement_String/g' Input_File sed详细手册

NumPy数组IndexError:索引99超出轴0的大小为1的范围

在python IndexError中使用for循环反转字符串:字符串索引超出范围[重复]