自动化无聊的东西:逗号代码:有没有更有效的方法?

2024-06-03 03:19:39 发布

您现在位置:Python中文网/ 问答频道 /正文

animals = ["rat", "cat", "bat", "mouse", "zebra", "barbeque", "chicken"]
def joiner(joined):
    while True:
        if len(joined) == 0:
            break
        else:
            lister = ", ".join(joined[:-1])
            lister = lister + " and " + joined[-1]
            print(lister)
            break             

joiner(animals)
        

这是我的代码,它将接收一个列表并返回一个字符串,该字符串由逗号分隔,最后两个字符串之间用“and”分隔。有没有更有效的方法


Tags: and字符串defcatanimalsbreakchickenzebra
3条回答

我相信所有现有的答案都改变了《老年退休金计划守则》的结构,如果不是行为的话。我认为,这并不是:

animals = ["rat", "cat", "bat", "mouse", "zebra", "barbeque", "chicken"]

def joiner(x):
    if x:
        print(', '.join(x[0:-1]) + " and " + x[-1])

joiner(animals)

一个衬里,用于美化0和1元素的情况:

'sorry, empty list' if len(animals)==0 else animals[0] if len(animals)==1  else ", ".join(animals[:-1]) + " and " + animals[-1] 

您可以先连接,然后将逗号的最后一个实例替换为“and”。这足够健壮,可以接受多个分隔符,而不仅仅是逗号

例如:

animals = ["rat", "cat", "bat", "mouse", "zebra", "barbeque", "chicken"]

def addand(list_to_use, char_to_find):

    base_string = ','.join(list_to_use)
    k = base_string .rfind(char_to_find)
    new_string = animals_string[:k] + " and " + animals_string[k+1:]
    return new_string



 new_string = addand(animals, ',')

输出:

rat,cat,bat,mouse,zebra,barbeque and chicken

相关问题 更多 >