Python中有效的方法是将元素添加到以逗号分隔的字符串中

ens*_*are 2 python string pylons

我正在寻找一种最有效的方法来将一个元素添加到以逗号分隔的字符串,同时保持字母的字母顺序:

例如:

string = 'Apples, Bananas, Grapes, Oranges'
addition = 'Cherries'
result = 'Apples, Bananas, Cherries, Grapes, Oranges'
Run Code Online (Sandbox Code Playgroud)

另外,这是一种方法,但在维护ID时:

string = '1:Apples, 4:Bananas, 6:Grapes, 23:Oranges'
addition = '62:Cherries'
result = '1:Apples, 4:Bananas, 62:Cherries, 6:Grapes, 23:Oranges'
Run Code Online (Sandbox Code Playgroud)

非常感谢示例代码.非常感谢.

Ale*_*lli 8

对于第一种情况:

alist = string.split(', ')
result = ', '.join(sorted(alist + [addition]))
Run Code Online (Sandbox Code Playgroud)

对于第二种情况:

alist = string.split(', ')
result = ', '.join(sorted(alist + [addition],
                          key=lambda s: s.split(':', 1)[1]))
Run Code Online (Sandbox Code Playgroud)

如果列表中有数千个项目,那么第一个案例可能会显示出可测量的性能提升,如果您愿意去更大的bisect.insort复杂性; 但这不支持a key=,所以第二种情况下的额外复杂性将是惊人的,甚至可能甚至不会给你任何表现.

只有当整个应用程序的配置文件显示此操作是它的一个关键瓶颈时,才能考虑前几段中提到的优化类型(如果是这样,通过将此数据结构保持为一个,您将获得更快的速度)单词列表,', '- 仅在出于输出目的而需要时才加入它,而不是为可能需要进行此类优化的极长列表分割和重新加入成千上万次.