我在Join all exercise找到“Hands-on Python Tutorial of Andrew N. Harrington”的解决方案时遇到了一些麻烦。
基本上,练习是采用['very', 'hot', 'day']
之类的列表,只包含字符串,并在其中创建一个字符串,在本例中为'veryhotday'
。
'''exercise to complete and test this function'''
def joinStrings(stringList):
'''Join all the strings in stringList into one string,
and return the result, NOT printing it. For example:
>>> s = joinStrings(['very', 'hot', 'day'])
>>> print(s) # I can print s OUTSIDE joinStrings
'veryhotday'
'''
# finish the code for this function
def main():
print(joinStrings(['very', 'hot', 'day']))
print(joinStrings(['this', 'is', 'it']))
print(joinStrings(['1', '2', '3', '4', '5']))
main()
因此只能更改第一个定义。我这样解决了:
def joinStrings(stringList):
return ''.join(stringList)
我相信这是有效的,也是正确的。如果我在这里错了,请纠正我,但问题是它必须以不同的方式解决。我必须积累不同的字符串。正如他们在这里用整数所示:
def sumList(nums):
’’’Return the sum of the numbers in the list nums.’’’
sum = 0
for num in nums:
sum = sum + num
return sum
而且我真的无法理解,所以请帮助我!
答案 0 :(得分:2)
''.join(stringList)
是正确的方法。有什么问题?
如果必须以不同方式完成,您可以执行以下操作之一:
import operator
return reduce(operator.add, stringList)
甚至
s = ''
for string in stringList:
s = s + string
return s
但这是不必要的复杂问题,因为像你建议的那样使用join
是最简单和首选的方式。可能也是最快的。
答案 1 :(得分:2)
查看str.join()方法
''.join(['a','b','c']) # 'abc'
' '.join(['a','b','c']) # 'a b c'
print ' are '.join(['how', 'you']) # > how are you
s = ''.join(['%d'%i for i in range(10)]) # 01234567789
str.join()
函数不打印任何内容,它只是从字符串列表中创建一个新字符串。