当前位置: 首页 > 面试题库 >

按数字排序字符串列表

巫晋鹏
2023-03-14
问题内容

我有一个带有文件名的字符串列表:

flist = ['0.png','10.png', '3.png', '4.png', '100.png']
flist.sort()
print(flist)

输出:

['0.png', '10.png', '100.png', '3.png', '4.png']

但是我想要:

['0.png', '3.png', '4.png', '10.png', '100.png']

有没有简单的方法可以做到这一点?


问题答案:

是:

flist.sort(key=lambda fname: int(fname.split('.')[0]))

说明:字符串按词法排序,因此"10"在字符串之前"3"(因为"1"<
"3",因此"1"忽略第一个字符串之后的内容)。因此,我们使用list.sort()key参数是一个回调函数,该函数接受一个列表项并返回用于对该项目进行排序的值-
在您的情况下,是从文件名的第一部分构建的整数。这样,列表就可以正确地按数值排序。



 类似资料:
  • 问题内容: 我创建了一个sqlite数据库,该数据库具有一个存储温度值的表。第一次将温度值以升序写入数据库。然后,我将数据库中的温度值读取到一个列表中,然后将该列表添加到组合框中以选择温度- 效果很好。 结果列表为: 然后,我向数据库添加一个新的温度值,例如“ 33”。 它被附加到表的末尾。如果我现在阅读温度,列表将变为: 如果我做或,最终的结果是 有什么简单的方法可以按升序对列表进行排序,以便得

  • 我在寻找字典上最小的字符串的排列数。 例如,< code>bbaa现在,字典上最小的字符串是< code>aabb,因此,排列是, < code>(1,2,3,4),(2,1,3,4),(1,2,4,3),(2,1,4,3)也就是4。 我对它的想法(在python中)是找到最小的字符串(基本上将其排序为字符串),然后创建一个计数器来存储每个字符的计数。 因为,我们不需要一个在字典上变得更大的字符串

  • 按字母顺序排序字符串中的字符。 使用扩展运算符(...),Array.sort() 和 String.localeCompare() 对 str 中的字符进行排序,使用 String.join('') 重新组合。 const sortCharactersInString = str => [...str] .sort((a, b) => a.localeCompare(b))

  • 我正在尝试编写一个程序,根据列表中最不频繁的字符排列字符串列表。例如,如果列表是,列表中的字母频率将是a-5,n-3,p-2,e-2,l-1,o-1,r-1,g-1,b-1。由于橙色包含最不频繁的字母,程序将返回橙色,然后是apple,然后是banana。 到目前为止,我已经编写了按频率排列列表中所有字母的代码。但我需要应用它来找出哪个字符串包含最不频繁的字母。 这是我的代码:

  • 问题内容: 我有一个具有以下格式的字符串列表: …,我想根据零件的字母顺序对列表进行排序。我将如何去做呢? 问题答案: 要更改排序键,使用的参数: 与以下方法相同: 请注意,如问题中所述,这将是字母排序,因此对于2位数字的组件,它不会将它们解释为数字,例如,“ 11”将出现在“ 2”之前。

  • 我有一个程序,它接受一个单词和一个文本文件字典,并在字典中搜索与给定单词相等的单词组合(是字母表)。 我最后得到了一个字符串数组的Arraylist,每个数组都是一个包含它所使用的单词的解决方案,Arraylist是所有的解决方案。 它首先按字长(降序)排序,然后对等长字使用字母排序。 我现在对各个数组进行了排序,但我正试图按照某些规则在arraylist中对它们进行排序: 按字数递增 对于包含相