`' '.join(e)`没有改变e的值
我正在创建一个函数,用来生成所有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', ...等等]
。我希望它能打印成一个长长的字符串:'aSuffixbSuffixcSuffix...等等.'
为什么JOIN在这里不管用呢?我该怎么修复这个问题?
另外,当我得到这个字符串后,怎么把字符分开呢?比如说,想把“后缀的最后一个字符拿出来,每次加一个空格('aSuffixbSuffixcSuffix' --> 'aSuffix bSuffix cSuffix')”。或者更一般一点,怎么替换第x个字符,其中x是任意整数(比如说,替换第3个、第6个、第9个字符,等等,用我选择的东西替换)。
4 个回答
0
join这个方法不会改变它的参数,它只是返回一个新的字符串:
result = ' '.join(e)
return result
0
如果你真的想要你指定的输出(把所有结果连在一起):
>>> import string
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> letters = string.ascii_lowercase
>>> suffix = 'Suffix'
>>> ''.join('%s%s' % (l, suffix) for l in letters)
'aSuffixbSuffixcSuffixdSuffixeSuffixfSuffixgSuffixhSuffixiSuffixjSuffixkSuffixlSuffixmSuffixnSuffixoSuffixpSuffixqSuffixrSuffixsSuffixtSuffixuSuffixvSuffixwSuffixxSuffixySuffixzSuffix'
2
str.join
方法会返回一个新的值,而不会改变原来的字符串。这里有一种方法可以做到这一点。
result = ' '.join(e)
print result
不过,如果你觉得自己很聪明,可以简化很多设置的步骤。
import string
def create_word(suffix):
return ' '.join(i + suffix for i in string.ascii_lowercase)