目前,我正在尝试打印一个对象列表,其中每个新行都会在每个对象的前面得到一个数字。就像第一行有一个1步,第二行有一个2等等。当我不使用每一行的数字时,打印函数工作得很好。
我试着写出来:
n=0
for x in List:
print("\n".join(str(n,x))
n+=1本例中的列表包含一组对象,所有对象都具有4个属性: self.name、self.randomint、self.randomint2、self.randomint3。
但是我得到了一个无效的语法这样做,将感谢帮助!
发布于 2013-11-24 13:52:09
括号在下面一行中是不平衡的:
print("\n".join(str(n,x))代之以:
print("\n".join(str(n,x)))
# ^另一个问题:str只接受一个参数。
>>> str(1, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: str() takes at most 1 argument (2 given)
>>> str(1)
'1'完整的示例代码:
n=0
for x in List:
print(n, x)
n += 1使用enumerate
for n, x in enumerate(List, 1):
print(n, x)发布于 2013-11-24 13:53:02
你错过了一个结尾的括号:
print("\n".join(str(n,x))
# --------^但这不是一个正确的语句,因为str()使用一个带有可选编码的字符串参数。
使用enumerate()添加一个计数并将两个参数传递给print()会更容易
for n, x in enumerate(Line):
print(n, x)https://stackoverflow.com/questions/20175263
复制相似问题