python - 如何根据索引数量格式化列表
问题描述
所以我看到了一个可以用列表中的字符串格式化句子的程序。该程序如下所示:
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'
它通过将给定的可迭代对象与分隔符连接来返回一个字符串。
同样,这就是正在发生的事情'{}'.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))
推荐阅读
- matlab - Matlab:以编程方式重置(所有)字体大小
- android - Google ML Kit:找不到“libbarhopper_v2.so”
- python - 如何访问嵌套字典中的列表
- java - EWS API - 如果与 FolderPermissionLevel.FreeBusyTimeAndSubjectAndLocation 共享日历,则无法在商店中找到指定的文件夹
- nginx - nginx 没有使用 Secure 和 SameSite 设置 cookie
- nginx - 我应该使用 Nginx 还是 Route53 进行重定向?
- python - Gekko 中的 ARX 模型
- python - 使用 Python 在文件中查找非 ASCII 行或字符
- javascript - 使用 Javascript 创建表行
- c++ - srand 是如何计算的?