Python 把数字排成一行
我们有这样一个字符串中的数字:Python 把数字排成一行,python,string,sorting,Python,String,Sorting,我们有这样一个字符串中的数字: numbers = "1534423543" 我们希望对此进行排序并返回: "1,2,3,4,5" (仅限唯一编号!) 如何在一行中完成此操作?使用set()获取唯一的项目,然后使用sorted()对它们进行排序,最后使用“,”将它们连接起来。join() 阿什维尼的答案就在每个人的指尖上——如果你想要进口,你可以 from itertools import groupby; ','.join(k for k, g in groupby(sorted(num
numbers = "1534423543"
我们希望对此进行排序并返回:
"1,2,3,4,5"
(仅限唯一编号!)
如何在一行中完成此操作?使用set()
获取唯一的项目,然后使用sorted()
对它们进行排序,最后使用“,”将它们连接起来。join()
阿什维尼的答案就在每个人的指尖上——如果你想要进口,你可以
from itertools import groupby; ','.join(k for k, g in groupby(sorted(nums)))
这几乎是一行:)为什么在一行中做这件事如此重要?为什么你更喜欢这个而不是更简单的
set
解决方案?@mgilson我肯定会使用set
解决方案,只是想我会加入一个替代方案(感谢编辑)分号作弊。虽然我认为导入不应该计数,但如果字符串只包含数字,我们需要使用sorted()
吗?@Jaypal如果您只需要唯一的项,那么set()
就足够了,但是如果您希望它们按排序顺序排列,那么使用sorted
,因为集合不会保留顺序。谢谢Ashwini。我在IDLE中尝试解决方案,并注意到如果使用只包含数字的字符串,set()
总是按排序顺序返回唯一的项。因此,我想知道我们是否只需要在处理可能是共同关联的alphanum
@Jaypal时才需要使用sorted()
,但您不应该依赖集合进行排序。在CPython中,它们被实现为哈希表<代码>帮助(设置)-->构建一个无序的独特元素集合。@AshwiniChaudhary谢谢,我有预感它可能是共同关联的。感谢您的快速回复。:)
from itertools import groupby; ','.join(k for k, g in groupby(sorted(nums)))