字符串排序而不转换为数组

时间:2015-11-14 14:48:47

标签: python

我正在解决我需要特定排序的问题,我在函数$this->belongsTo('ParentPosts', [ 'className' => 'Posts', 'foreignKey' => 'post_id', 'joinType' => 'INNER' ]); 中编写,但python中MyFn的结果是一个列表。是否可以在不使用sorted的情况下返回字符串? join

2 个答案:

答案 0 :(得分:3)

这是不可能的,因为sorted()旨在返回一个列表。

但是,您可以使用.join()将其转换回字符串。

s_list = sorted(s, key=MyFn)
s_str = "".join(s_list)

如果你不能使用.join(),还有另外一种方法,但这有点棘手,我强烈不推荐它。您可以使用repr()将列表转换为字符串,然后由于切片,您可以从此列表中获取字母:

s_str = repr(sorted(s, key=MyFn))[2::5]

由于字符列表的表示类似于['s', 't', 'r', 'i', 'n', 'g'],这应该有效。

答案 1 :(得分:0)

  

是否可以在不使用join的情况下返回字符串?

是的,有可能,但很慢

src = ['a', 'b', 'c']
dest = ''

for c in src:
    dest += src

print(dest)

或者functools.reduce

from functools import reduce
src = ['a', 'b', 'c']
dest = reduce(str.__add__, src)
print(dest)