如何对列表进行排序,仅对字符串进行排序?

开斋节

我有一个字符串和整数列表,想要对列表进行排序,像这样保留数字

["Hello", 1, 2, "World", 6, "Foo", 3]

会成为

["Foo", 1, 2, "Hello", 6, "World", 3]

简而言之,它仅对列表中的字符串排序,而不对保留在原位的整数排序。我尝试将key参数与一起使用list.sort()但未能实现我想要的。

谁能帮我这个?

编辑:这不同于链接的问题,因为我想保留整数的索引,而不是将它们与字符串一起排序。

编辑:这与第二个链接的问题不同,因为该问题的答案可以使用key参数解决问题,我明确声明的内容在这种情况下不起作用。

摩西·科莱多耶

前几天,从@JonClements获得了这个很酷的技巧。

开始:

gen = iter(sorted([x for x in lst if isinstance(x, str)]))
new_lst =  [next(gen) if isinstance(x, str) else x for x in lst]
print(new_lst)
# ['Foo', 1, 2, 'Hello', 6, 'World', 3]

分别对字符串进行排序,然后从排序后的字符串创建生成器表达式。列表理解中,从gen中交替选择对象。实验 如果只有原始位置中的项目是字符串,则使用三元条件,否则,从初始列表中选择一个项目(整数)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过字符串数字对列表视图进行排序?

如何对包含间隔但以字符串格式的列表进行排序

如何对字符串日期列表进行排序

如何根据子字符串对名称列表进行排序?

如何对字符串列表进行排序

如何对字符串列表进行排序?

如何对字符串进行排序?

根据字符串中间的字符对列表进行排序

为什么用数字对字符串进行排序与仅对数字进行排序有不同的结果?

Python:如何按子字符串相关性对字符串列表进行排序?

如何对包含日期作为子字符串的字符串列表进行排序

按计数然后按字符串对排序的字符串集列表进行排序

根据字符串标签对列表中的对象进行排序

使用搜索字符串对列表进行排序

对整数和字符串的混合列表进行排序

用R中的字符串索引对列表进行排序

按字符串属性对对象列表进行排序

对数字的字符串数组列表进行排序

根据字符串的长度对Python列表进行排序

对数组中的字符串项列表进行排序

用列表中的单词对字符串进行排序

根据子字符串对列表进行拆分和排序

按包含字符串的整数对列表进行排序

是否可以对字符串元素列表进行排序?

使用像 int 这样的字符串对列表进行排序

根据字符串的索引对列表进行排序

如何在python中对列表中的两个列表路径的字符串进行排序?

在Java中仅对字符串数组中的数字元素进行排序?

Common-Lisp:如何对字符串的字符进行排序?