Python:字符串连接

Python: String Concatenation

我从 Python 开始阅读这本书:用 Python 自动化无聊的东西。

我正在做第 4 章中的一个练习,叫做逗号代码。我应该能够创建一个简单的函数,无论长度如何,它都可以接受任何列表,例如['apples','bananas','tofu','cats'] 输出为:apples, bananas, tofu, and cats;能够在最后一个和倒数第二个列表值

之间插入单词 的键

我写了一些有用的东西(见下文)。但它以新行而不是一行输出值。

'''Practice Projects - Comma Code'''

def commacode(list_range):
    for i in range(len(list_range)):
        #print(i)
        position = len(list_range) - i
        #print(position)
        list_a = ''
        list_b = ''
        if position != 1:
            #list = ''
            list_a += str(list_range[i]) + ','
            print(list_a)
        else:
            list_b += list_a + ' and ' + str(list_range[i])
    print(list_a + list_b)

rangeoflist = ['apples','bananas','tofu','cats']
commacode(rangeoflist)
#print(rangeoflist)

如何在一行中获得输出?

谢谢

要在一行中打印句子,请将 end='' 添加到第一个 print():

'''Practice Projects - Comma Code'''

def commacode(list_range):
    for i in range(len(list_range)):
        position = len(list_range) - i
        list_a = ''
        list_b = ''
        if position != 1:
            list_a += str(list_range[i]) + ','
            print(list_a, end='')                  # <-- add end='' here
        else:
            list_b += list_a + ' and ' + str(list_range[i],)
    print(list_a + list_b)

rangeoflist = ['apples','bananas','tofu','cats']
commacode(rangeoflist)

打印:

apples,bananas,tofu, and cats

使用 str.join 可以实现更简单的代码。例如:

rangeoflist = ['apples','bananas','tofu','cats']
print(','.join(rangeoflist[:-1]) + ' and ' + rangeoflist[-1])

打印:

apples,bananas,tofu and cats

Python 对于字符串来说非常优雅。我使用 join 和数组切片。

rangeoflist = ['apples','bananas','tofu','cats']
solution = " and ".join([", ".join(rangeoflist[:-1]), rangeoflist[-1]])
print(solution)

这就是您需要的全部代码。