'str'对象没有属性'sort'

时间:2016-10-17 20:29:52

标签: python

我是python的新手,想知道是否有人可以帮我解决问题。我正在做一个字谜检查,并遇到了一个问题。

def anagram():
    worda = input("Please choose your first word:")     
    wordb = input("Please choose your second word:")
    if worda.isalpha():
        print((worda),"is a word")
    else:
        print((worda),"is not a word, please try again")      
        anagram()
    if wordb.isalpha():
        print((wordb),"is a word")         
    else:
        print((wordb),"is not a word,please try again")
        anagram()
    worda.sort
    wordb.sort    

anagram()

我收到错误:AttributeError:当我尝试运行它时,'str'对象没有属性'sort'。

3 个答案:

答案 0 :(得分:4)

Python中的

字符串是不可变的,因此使用sort方法对它们没有任何意义,你可以做的是使用sorted(worda),它返回一个由字符组成的排序列表。字符串。

然后再次返回字符串,您可以使用''.join(sorted(worda))

答案 1 :(得分:1)

在Python中,不可能按字典顺序对字符串进行排序,因为字符串是不可变的。相反,您必须使用sorted函数,它接受字符串,将其转换为列表,然后对其进行排序。完成后,您可以使用join函数将结果转换回字符串。

worda = "".join(sorted(worda))

答案 2 :(得分:0)

Python中没有sort或任何sort()函数与str的属性。要对str进行排序,您可以使用sorted()作为:

>>> x = 'abcsd123ab'
>>> sorted(x) # returns list
['1', '2', '3', 'a', 'a', 'b', 'b', 'c', 'd', 's']

如果您需要按排序string生成结果,则需要将其明确join为:

>>> ''.join(sorted(x))
'123aabbcds'