python字母数字排序不提供匹配';int(str)和#x27;找到重载:以下重载可用

python字母数字排序不提供匹配';int(str)和#x27;找到重载:以下重载可用,python,Python,我得到: data = set(['booklet', '4 sheets', '48 sheets', '12 sheets',44,443 ,'$sdsds', '>>>>ASdasdas']) r = sorted(data, key=lambda item: (int(item.partition(' ')[0]) if item[0].isdigit() else float('inf'),

我得到:

data = set(['booklet', '4 sheets', '48 sheets', '12 sheets',44,443 ,'$sdsds', '>>>>ASdasdas'])
r = sorted(data, key=lambda item: (int(item.partition(' ')[0])
                                   if item[0].isdigit() else float('inf'), str(item)))
print ',\n'.join(r)
回溯(最近一次呼叫最后一次):
文件“test.py”,第2行,在
r=已排序(数据,键=lambda项:(int(项.分区(“”)[0])
文件“test.py”,第3行,在
如果项[0].isdigit()否则为浮点('inf'),则为str(项)))
TypeError:“int”对象没有属性“\uuuu getitem\uuuu”

如何使这类工作

不能为整数下标,因为它们是不可编辑的。这就是您在执行
44[0]
时尝试执行的操作

你的意思很可能是:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    r = sorted(data, key=lambda item: (int(item.partition(' ')[0])
  File "test.py", line 3, in <lambda>
    if item[0].isdigit() else float('inf'), str(item)))
TypeError: 'int' object has no attribute '__getitem__'

不能为整数下标,因为它们不可iterable。这就是您在执行
44[0]
时尝试执行的操作

你的意思很可能是:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    r = sorted(data, key=lambda item: (int(item.partition(' ')[0])
  File "test.py", line 3, in <lambda>
    if item[0].isdigit() else float('inf'), str(item)))
TypeError: 'int' object has no attribute '__getitem__'

不能为整数下标,因为它们不可iterable。这就是您在执行
44[0]
时尝试执行的操作

你的意思很可能是:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    r = sorted(data, key=lambda item: (int(item.partition(' ')[0])
  File "test.py", line 3, in <lambda>
    if item[0].isdigit() else float('inf'), str(item)))
TypeError: 'int' object has no attribute '__getitem__'

不能为整数下标,因为它们不可iterable。这就是您在执行
44[0]
时尝试执行的操作

你的意思很可能是:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    r = sorted(data, key=lambda item: (int(item.partition(' ')[0])
  File "test.py", line 3, in <lambda>
    if item[0].isdigit() else float('inf'), str(item)))
TypeError: 'int' object has no attribute '__getitem__'
你想要这个

str(item)[0].isdigit()
你想要这个

str(item)[0].isdigit()
你想要这个

str(item)[0].isdigit()
你想要这个

str(item)[0].isdigit()

预期的产量是多少?你能说得具体一点吗?这很奇怪。我没有得到SyntaxError,我得到的是
TypeError:“int”对象不可下标
。在任何情况下,当
item
为44时,在其上调用
partition
,或者执行
item[0]
,都是没有意义的,因为它不是字符串。您不会碰巧使用Squish,对吗?预期的输出是什么?您能具体点吗?这很奇怪。我没有得到SyntaxError,我得到的是
TypeError:“int”对象不可下标
。在任何情况下,当
item
为44时,在其上调用
partition
,或者执行
item[0]
,都是没有意义的,因为它不是字符串。您不会碰巧使用Squish,对吗?预期的输出是什么?您能具体点吗?这很奇怪。我没有得到SyntaxError,我得到的是
TypeError:“int”对象不可下标
。在任何情况下,当
item
为44时,在其上调用
partition
,或者执行
item[0]
,都是没有意义的,因为它不是字符串。您不会碰巧使用Squish,对吗?预期的输出是什么?您能具体点吗?这很奇怪。我没有得到SyntaxError,我得到的是
TypeError:“int”对象不可下标
。在任何情况下,当
item
为44时,对其调用
partition
,或执行
item[0]
,都没有意义,因为它不是字符串。您不会碰巧使用Squish,对吗?