`''。join(e)`不改变e的值

时间:2011-04-12 20:15:51

标签: python

我正在创建一个函数来创建具有固定后缀的所有26个单词组合。该脚本的工作方式除了倒数第二行中的JOIN。

def create_word(suffix):
    e=[]
    letters="abcefghijklmnopqrstuvwxyz"
    t=list(letters)
    for i in t:
        e.append(i)
        e.append(suffix)
    ' '.join(e)
    print e

目前正在打印['a', 'suffix', 'b', 'suffix, ...etc]。我希望它打印成一个长字符串:'aSuffixbSuffixcSuffix...etc.'为什么连接不起作用?我该如何解决这个问题?

另外,一旦我有了字符串,我将如何分离字符?例如,翻译“取后缀的最后一个字符并每次为它添加一个空格('aSuffixbSuffixcSuffix' - >'aSuffix bSuffix cSuffix')”。或者,更一般地说,替换第x个字符,其中x是任何整数(例如,替换我选择的第3,第6,第9等字符。)

4 个答案:

答案 0 :(得分:2)

str.join返回新值,而不是转换现有值。这是完成它的一种方法。

result = ' '.join(e)
print result

但如果你感觉很聪明,你可以简化很多设置。

import string
def create_word(suffix):
   return ' '.join(i + suffix for i in string.ascii_lowercase)

答案 1 :(得分:0)

join不会更改其参数 - 它只返回一个新字符串:

result = ' '.join(e)
return result

答案 2 :(得分:0)

如果你真的想要你指定的输出(所有结果连接在一起):

>>> import string
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> letters = string.ascii_lowercase
>>> suffix = 'Suffix'
>>> ''.join('%s%s' % (l, suffix) for l in letters)
'aSuffixbSuffixcSuffixdSuffixeSuffixfSuffixgSuffixhSuffixiSuffixjSuffixkSuffixlSuffixmSuffixnSuffixoSuffixpSuffixqSuffixrSuffixsSuffixtSuffixuSuffixvSuffixwSuffixxSuffixySuffixzSuffix'

答案 3 :(得分:-1)

除了rekursive已经提到的问题,你应该看一下列表理解:

def create_word(suffix):
    return ''.join(
        [i+suffix for i in "abcefghijklmnopqrstuvwxyz"]
    )
print create_word('suffix')