【发布时间】:2021-06-26 23:32:34
【问题描述】:
我正在尝试创建格式化打印,并且收到此错误输出。我对python相当陌生,使用python3.x,所以任何输入都会非常感激!谢谢!!
avgPetal_widthS = Average(petal_widthS)
avgPetal_widthVe = Average(petal_widthVe)
avgPetal_widthVi = Average(petal_widthVi)
avgPetal_lengthS = Average(petal_lengthS)
avgPetal_lengthVe = Average(petal_lengthVe)
avgPetal_lengthVi = Average(petal_lengthVi)
avgSepal_widthS = Average(sepal_widthS)
avgSepal_widthVe = Average(sepal_widthVe)
avgSepal_widthVi = Average(sepal_widthVi)
avgSepal_lengthS = Average(sepal_lengthS)
avgSepal_lengthVe = Average(sepal_lengthVe)
avgSepal_lengthVi = Average(sepal_lengthVi)
setosa = []
versicolor = []
virginica = []
setosa.append(['Setsota',avgPetal_lengthS,avgPetal_widthS,avgSepal_lengthS,avgSepal_widthS])
versicolor.append(['Versicolor',avgPetal_lengthVe,avgPetal_widthVe,avgSepal_lengthVe,avgSepal_widthVe])
virginica.append(['Virginica',avgPetal_lengthVi,avgPetal_widthVi,avgSepal_lengthVi,avgSepal_widthVi])
avgIris = (
['Setsota',avgPetal_lengthS,avgPetal_widthS,avgSepal_lengthS,avgSepal_widthS],
['Versicolor',avgPetal_lengthVe,avgPetal_widthVe,avgSepal_lengthVe,avgSepal_widthVe],
['Virginica',avgPetal_lengthVi,avgPetal_widthVi,avgSepal_lengthVi,avgSepal_widthVi])
gap = ' '*3
heading = f"{'Species:':11s}{gap}{'Petal Length':12s}{gap}{'Petal Width':11s}{gap}{'Sepal Length':12s}{gap}{'Sepal Width':11s}"
print("\n")
print("="*69)
print(heading)
print("-"*69)
print("Attributes (cm):")
for i in avgIris:
rec = f"{avgIris[i][0]:11s}{gap}{avgIris[i][1]:12f}{gap}{avgIris[i][2]:11f}{gap}{avgIris[i][3]:12f}{gap}{avgIris[i][4]:11f}"
print(rec)
我收到的错误专门与 rec= 部分有关,我试图在其中分隔我的元组浮点数。
错误是:
=====================================================================
Species: Petal Length Petal Width Sepal Length Sepal Width
---------------------------------------------------------------------
Attributes (cm):
Traceback (most recent call last):
File "/Users/meikebuettner/hello/a5_mbuettner/a5_mbuettner2017.py", line 90, in <module>
rec = f"{avgIris[i][0]:11s}{gap}{avgIris[i][1]:12f}{gap}{avgIris[i][2]:11f}{gap}{avgIris[i][3]:12f}{gap}{avgIris[i][4]:11f}"
TypeError: tuple indices must be integers or slices, not list
【问题讨论】:
-
for i in avgIris:中的i是元组avgIris的一个元素。元组的每个元素都是一个列表,所以将列表作为一个元组的索引基本上是不正确的,是错误所传达的内容。 -
@tidakdiinginkan 啊谢谢!有什么比使用
i更好的方式来运行元组? -
这段代码可以做几个更正,首先,我会说,setosa.append(['Setsota']) 基本上给你这个 -->
[['Setosa']],基本上是一个列表列表,我认为您不一定需要仅查看上面的 sn-p。您可以简单地替换append,而是说setosa = ['Setsota',avgPetal_lengthS,avgPetal... -
好的,一旦你对所有 3 个变量(setosa、versicolor 和 virginia)进行了上述更正,你就可以将你的 if 循环更改为
for i in zip(setosa, versicolor, virginia):然后rec = f"{i[0]:11s}{gap}... -
@tidakdiinginkan 哦哦哦!!谢谢!我要试试!
标签: python python-3.x list formatting tuples