如何使用 Python 中的 .format() 在 'for' 循环中打印列表?
How to print the list in 'for' loop using .format() in Python?
我是 Python 的新手。我正在编写一段非常简单的代码来使用 'for' 循环和 .format()
打印列表的内容,我想要如下输出,但我收到此错误:
names = ['David', 'Peter', 'Michael', 'John', 'Bob']
for i in names:
print("{}.{}".format(i, names[i]))
print("{}.{}".format(i,breakfastMenu[i]))
TypeError: list indices must be integers or slices, not str
我想要的预期输出:
1.大卫
2.彼得
3.迈克尔
4.约翰
5.鲍勃
有人可以帮我得到那个输出吗?
Python 的 for...in 语句类似于其他语言中的 foreach。您希望 enumerate
获取索引。
for i, name in enumerate(names):
print("{}. {}".format(i+1, name))
如果您想将它们全部打印在一行中,请使用 end
kwarg。
for i, name in enumerate(names):
print("{}. {}".format(i+1, name), end=" ")
print() # for the final newline
1. David 2. Peter 3. Michael 4. John 5. Bob
names = ['David', 'Peter', 'Michael', 'John', 'Bob']
for i in range (len (names)):
print("{}.{}".format(i + 1, names[i]))
Python 列表索引引用不能是字符串。使用整数而不是索引本身(字符串)通过 for 循环遍历列表将解决此问题。
这是一个错误消息在诊断问题时非常有用的示例。
names
是 str
的 list
,因此,当您 迭代 时,您将得到 str
值。
for i in names:
print(i + 'other_str') # i is a str
为了随机访问 list
上的元素,您需要指定它们的 index
,这需要是 int
.
如果你想得到元素对应的索引,当你遍历它们时,你可以使用Python的enumerate
:
for index, name, in enumerate(names):
print('{}.{}'.format(index, names[index]))
请注意,您实际上不需要通过 names[index]
访问名称,因为您在迭代时已经获取了该元素。因此,上面的内容类似于以下内容:
for index, name in enumerate(names):
print('{}.{}'.format(index, name))
输出:
0.David
1.Peter
2.Michael
3.John
4.Bob
好吧,根据我尝试过的你们的建议答案。我得到了预期的输出
>>> names = ['David', 'Peter', 'Michael', 'John', 'Bob']
>>> for i in range(len(names)):
print('{}.{}'.format(i+1, names[i]))
我能看到的输出:
1.David
2.Peter
3.Michael
4.John
5.Bob
我是 Python 的新手。我正在编写一段非常简单的代码来使用 'for' 循环和 .format()
打印列表的内容,我想要如下输出,但我收到此错误:
names = ['David', 'Peter', 'Michael', 'John', 'Bob']
for i in names:
print("{}.{}".format(i, names[i]))
print("{}.{}".format(i,breakfastMenu[i]))
TypeError: list indices must be integers or slices, not str
我想要的预期输出: 1.大卫 2.彼得 3.迈克尔 4.约翰 5.鲍勃
有人可以帮我得到那个输出吗?
Python 的 for...in 语句类似于其他语言中的 foreach。您希望 enumerate
获取索引。
for i, name in enumerate(names):
print("{}. {}".format(i+1, name))
如果您想将它们全部打印在一行中,请使用 end
kwarg。
for i, name in enumerate(names):
print("{}. {}".format(i+1, name), end=" ")
print() # for the final newline
1. David 2. Peter 3. Michael 4. John 5. Bob
names = ['David', 'Peter', 'Michael', 'John', 'Bob']
for i in range (len (names)):
print("{}.{}".format(i + 1, names[i]))
Python 列表索引引用不能是字符串。使用整数而不是索引本身(字符串)通过 for 循环遍历列表将解决此问题。 这是一个错误消息在诊断问题时非常有用的示例。
names
是 str
的 list
,因此,当您 迭代 时,您将得到 str
值。
for i in names:
print(i + 'other_str') # i is a str
为了随机访问 list
上的元素,您需要指定它们的 index
,这需要是 int
.
如果你想得到元素对应的索引,当你遍历它们时,你可以使用Python的enumerate
:
for index, name, in enumerate(names):
print('{}.{}'.format(index, names[index]))
请注意,您实际上不需要通过 names[index]
访问名称,因为您在迭代时已经获取了该元素。因此,上面的内容类似于以下内容:
for index, name in enumerate(names):
print('{}.{}'.format(index, name))
输出:
0.David
1.Peter
2.Michael
3.John
4.Bob
好吧,根据我尝试过的你们的建议答案。我得到了预期的输出
>>> names = ['David', 'Peter', 'Michael', 'John', 'Bob']
>>> for i in range(len(names)):
print('{}.{}'.format(i+1, names[i]))
我能看到的输出:
1.David
2.Peter
3.Michael
4.John
5.Bob