1

AndrewN.HarringtonのハンズオンPythonチュートリアルの「 Joinallexercise」の解決策を見つけるのに問題があります。

基本的に、演習は文字列のみで構成されるようなリストを取得し['very', 'hot', 'day']、この場合はそのリストから1つの文字列を作成すること'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

本当に理解できないので、助けてください!

4

2 に答える 2

2

''.join(stringList)正しい方法です。何が問題ですか?

別の方法で行う必要がある場合は、次のいずれかを行うことができます。

import operator
return reduce(operator.add, stringList)

あるいは

s = ''
for string in stringList:
    s = s + string
return s

joinしかし、あなたが提案したように使用することが最も簡単で好ましい方法であるため、それは不必要な複雑さです。おそらくまた最速です。

于 2012-09-12T16:41:46.623 に答える
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()関数は何も出力せず、文字列のリストから新しい文字列を作成するだけです。

于 2012-09-12T16:42:22.837 に答える