使用时出现类型错误字符串.连接()在Python中

2024-10-03 15:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我写的是一个非常简单的函数,给定一个字符串作为输入,将字符串解析成句子,反转每个句子的单词,然后以给定的句子顺序返回颠倒的句子。我在使用string.split()string.join()内置方法,在运行下面的python程序时遇到了一个TypeError。在

import string

def reverseSentences(str):
    senList = str.split('.')
    for i, item in enumerate(senList[:]):
        senList[i] = string.join(item.split(' ').reverse(), ' ')
    return string.join(senList, '.') + '.'

当我试图打印对这个函数的调用时,它会给我一个通用的TypeError。谢谢你忍受了我的愚蠢。在


Tags: 方法函数字符串程序string顺序item单词
3条回答

试试看

>> str = 'a1 b2'
>> ' '.join(x[::-1] for x in str.split())
'1a 2b'

函数形式:

^{pr2}$

注意,x[::-1]reversed()Reverse a string in Python)快得多。在

排队:

senList[i] = string.join(item.split(' ').reverse(), ' ')

.reverse()反转列表对象本身中的项,但不返回任何内容,因此不能以这种方式使用联接。在

把这条线一分为二:

^{pr2}$

item.split(' ').reverse()不返回列表,而是按相反的顺序返回。因此,您的加入与:

string.join(None, ' ')

显然是个问题。您应该使用reversed()函数:

^{pr2}$

而不是string.join函数,而是使用在更新的Python版本中的string类中定义的方法。在

' '.join(reversed(item.split(' '))

相关问题 更多 >