我正在创建一个函数来创建具有固定后缀的所有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等字符。)
答案 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')