我正试图格式化一个字典,其中的关键是在一个食物网络捕食者的名字和价值是捕食者吃的猎物的清单。我可以打印出全部内容,但打印出来的猎物列表都用逗号隔开。我想格式化它,所以最后一个逗号不是逗号,而是说“和”。
这就是我所拥有的,d是我的字典:

for key in d:
        print(key, "eats", ', '.join(map(str,d[key])))

打印出来,例如:
Lobster eats mussels, limpets, whelk

我想把最后一个逗号换成“and”。我知道我必须找到逗号的索引,这是通过:
pos=str(d[key]).rfind(",")

我只是不知道怎么从这里完成。
有什么建议吗?
谢谢您

最佳答案

在您的示例中,如果prey包含逗号,您可能会遇到问题,这可能吗?
我建议:

for predator, prey in d.items():
    print '%s eats %s and %s' % (predator, ', '.join(prey[:-1]), prey[-1])

for predator, prey in d.items()循环所有键和值对。
', '.join(prey[:-1])捕获除最后一个猎物外的所有猎物,并用逗号连接它们
prey[-1]然后添加最后一个猎物
每一个%s被行尾的元组中的值替换

10-06 05:07