【发布时间】:2020-01-29 14:36:42
【问题描述】:
我的问题基本上是这两种代码都可以正常工作,但是 key = min 的第二种解决方案对我来说没有意义。 python如何通过这段代码?为什么它忽略对字母进行排序而直接按数字排序?我无法理解这段代码的底层逻辑。
我的代码:
def order(sentence):
return ' '.join(sorted(sentence.split(), key=lambda s: int("".join(filter(str.isdigit, s)))))
print(order("is2 Thi1s T4est 3a"))
第二个解决方案
def order(sentence):
return ' '.join(sorted(sentence.split(), key=min))
print(order("is2 Thi1s T4est 3a"))
两种情况的答案都是正确的:
Thi1s is2 3a T4est
【问题讨论】:
-
好吧,
min('Thi1s')返回什么?'1'。为什么?因为 “[min返回] 可迭代对象中的最小项”。字符串是一个iterable,1是其中的“最小”字符。