在 Python 3 中连接 for 循环的字符串输出

Concatenating string outputs of a for loop in Python 3

我有一个代码,在嵌套的 for 循环之后,在每次迭代中为我提供一个唯一的字符串。我想找到一种方法来连接这些输出,以便我的最后一行是这些唯一字符串的单个字符串。忽略这段代码有多丑陋和低效,我可以采取哪些步骤来达到预期的结果?

VOWELS = ('a','e','i','o','u','A','E','I','O','U')

ad = "Desirable unfurnished flat in quiet residential area"
# remove all vowels, unless the word starts with a vowel

def is_vowel(c):
    return c in VOWELS

def mod3(ad):
    testAd =ad.split()
    for word in testAd:
        modAd = ""
        i = 0
        for char in word:
            if i == 0:
                modAd += char
            elif not is_vowel(char):
                modAd += char
            i+=1
        print(modAd)

mod3(ad)

我对这段代码的输出:

否则,当我将代码修改为如下所示时:

但我的输出是:

我认为 .join() 在这里不起作用,因为它不是列表类型。而且我无法弄清楚在没有我的 for 循环变得疯狂的情况下将字符串 concat + 放在任何地方。有什么建议吗?

您可以创建一个字符串 result,您可以在其中连接每个迭代结果并打印出来。您需要在每次添加单词后添加空格。因此,也将 + " " 附加到您的 result 变量。

def mod3(ad):
    result = ""
    testAd =ad.split()
    for word in testAd:
        modAd = ""
        i = 0
        for char in word:
            if i == 0:
                modAd += char
            elif not is_vowel(char):
                modAd += char
            i+=1
        result += modAd + " "
    print(result)

第二个选项:这是我的看法:

def mod4(ad):
    result = ""
    testAd =ad.split()
    for word in testAd:
          for i, char in enumerate(word):
              if i == 0:
                  result += char
              if i > 0 and char not in VOWELS:
                  result += char
          result += " "
    print(result)