设置字符串格式时,不了解&Quot;IndexError:元组索引超出范围的原因

Don#39;t understand cause of quot;IndexError: tuple index out of rangequot; when formatting string(设置字符串格式时,不了解Quot;IndexError:元组索引超出范围的原因)
本文介绍了设置字符串格式时,不了解&Quot;IndexError:元组索引超出范围的原因的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我查看了类似的问题IndexError,但没有找到对我的情况的解释。有人能解释一下我为什么会收到这个错误吗?

以下代码

mySF2[0]=['000browser', '1', 'Floor', '0.92', '1.74', 'con', 'None']

insertfmt = ' '.join([
"INSERT INTO mySchema.myTable_{}_name (col1, col2, col3, col4, col5, col6)",  
"VALUES ({}, {}, NULLIF({},'None')::decimal, NULLIF({},'None')::decimal, {}, NULLIF({},'None')::int)"
         ])

insertfmt.format(mySF2[0])

出现此错误

IndexError: tuple index out of range
但是,我计算了7个占位符(即大括号{})和7个要输入的项目。那么为什么会出现这种错误呢?

推荐答案

str.format()接受与格式字符串中的空洞数量相对应的可变数量的参数。在您的示例中,您向.format()传递了一个参数(列表),这会导致错误,因为它需要七个参数。

若要将数组作为单独的参数传递给函数,需要使用*运算符,如下所示:

insertfmt.format(*mySF2[0])

这篇关于设置字符串格式时,不了解&Quot;IndexError:元组索引超出范围的原因的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)