如何根据索引的数量格式化列表
How to format a list based on its number of indexes
所以我看到一个程序可以用列表中的字符串格式化一个句子。该程序如下所示:
animals = ["dog", "bear"]
safari = " I saw {} and {}
print(safari.format(*animals))
所以我想知道如果我有一个更大的列表,那么我将不得不放这么多 {} 来格式化。这就是为什么我想创建一个程序,根据列表中有多少个字符串来添加这些括号 {}。该程序看起来像这样但不起作用:
animals = ["dog", "cat", "mouse", "elephant", "bird", "lion", "llama", "flamingo", "cow", "whale", "shark", "fish", "bear", "pig"]
safari = "I saw "
for i in range(len(animals)):
x = " {} ".join(safari)
print(safari.format(*animals))
很简单,就是不明白为什么不行。
您的代码的问题在于它会将元素与 {}
连接起来。您对 .join
的工作原理感到困惑。
考虑以下因素:
>>> a=['a','b','c']
>>> ', '.join(a)
'a, b, c'
它 returns 一个字符串,通过将给定的 iterable 与定界符连接起来。
同样,'{}'.join(animals)
也是如此
>>> '{}'.join(a)
'a{}b{}c'
你可以试试这个:
animals = ["dog", "cat", "mouse", "elephant", "bird", "lion", "llama", "flamingo", "cow", "whale", "shark", "fish", "bear", "pig"]
new='I saw '
new+=', '.join("{}" for i in animals)
print(new.format(*animals))
所以我看到一个程序可以用列表中的字符串格式化一个句子。该程序如下所示:
animals = ["dog", "bear"]
safari = " I saw {} and {}
print(safari.format(*animals))
所以我想知道如果我有一个更大的列表,那么我将不得不放这么多 {} 来格式化。这就是为什么我想创建一个程序,根据列表中有多少个字符串来添加这些括号 {}。该程序看起来像这样但不起作用:
animals = ["dog", "cat", "mouse", "elephant", "bird", "lion", "llama", "flamingo", "cow", "whale", "shark", "fish", "bear", "pig"]
safari = "I saw "
for i in range(len(animals)):
x = " {} ".join(safari)
print(safari.format(*animals))
很简单,就是不明白为什么不行。
您的代码的问题在于它会将元素与 {}
连接起来。您对 .join
的工作原理感到困惑。
考虑以下因素:
>>> a=['a','b','c']
>>> ', '.join(a)
'a, b, c'
它 returns 一个字符串,通过将给定的 iterable 与定界符连接起来。
同样,'{}'.join(animals)
>>> '{}'.join(a)
'a{}b{}c'
你可以试试这个:
animals = ["dog", "cat", "mouse", "elephant", "bird", "lion", "llama", "flamingo", "cow", "whale", "shark", "fish", "bear", "pig"]
new='I saw '
new+=', '.join("{}" for i in animals)
print(new.format(*animals))