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

诺德

我正在尝试从数组中获取列表,然后拆分字符串以按最后一系列6个数字(例如'042126)对列表进行排序。为此,我将用'。'分割,使用字符串[-2]的第二个到最后一个分割,然后使用此子字符串对matchfiles [1]进行排序。

文件应该最终排序为:erl1.041905,erl1.041907,erl2.041908,erl1.041909,erl2.041910等。

两个问题:如何为每个字符串指定无限数量的拆分(如果较长的名称使用附加的“。”?我正在使用4个拆分,但这种情况可能不成立。否则,我将如何向后拆分两次?

更重要的是,我返回了一个错误:“列表”对象不可调用。我究竟做错了什么?

谢谢

matchfiles = [ [1723], ['blue.2017-09-05t15-15-07.erl1.041905.png', 
                        'blue.2017-09-05t15-15-11.erl1.041907.png', 
                        'blue.2017-09-05t15-15-14.erl1.041909.png', 
                        'blue.2017-09-05t14-21-35.erl2.041908.png', 
                        'blue.2017-09-05t14-21-38.erl2.041910.png', 
                        'blue.2017-09-05t14-21-41.erl2.041912.png', 
                        'blue.2017-09-05t14-21-45.erl2.041914.png'], 
                        [09302] ]

matchtry = sorted(matchfiles[1], key = [i.split('.', 4)[-2] for i in 
matchfiles[1]])
深空
  • key参数需要一个功能,但是你给它一个列表,因此错误list is not callable

  • 您应该使用split('.')[-2]哪个总是倒数第二个元素。


matchfiles = [ [1723], ['blue.2017-09-05t15-15-07.erl1.041905.png',
                        'blue.2017-09-05t15-15-11.erl1.041907.png',
                        'blue.2017-09-05t15-15-14.erl1.041909.png',
                        'blue.2017-09-05t14-21-35.erl2.041908.png',
                        'blue.2017-09-05t14-21-38.erl2.041910.png',
                        'blue.2017-09-05t14-21-41.erl2.041912.png',
                        'blue.2017-09-05t14-21-45.erl2.041914.png'],
                        [9302] ]

matchtry = sorted(matchfiles[1], key=lambda x: x.rsplit('.')[-2])
print(matchtry)
# ['blue.2017-09-05t15-15-07.erl1.041905.png', 'blue.2017-09-05t15-15-11.erl1.041907.png', 
   'blue.2017-09-05t14-21-35.erl2.041908.png', 'blue.2017-09-05t15-15-14.erl1.041909.png',
   'blue.2017-09-05t14-21-38.erl2.041910.png', 'blue.2017-09-05t14-21-41.erl2.041912.png',
   'blue.2017-09-05t14-21-45.erl2.041914.png']

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

根据特定的子字符串对Bash中的字符串列表进行数字排序

根据子列表中的字母数字字符串对列表列表进行自然排序?

java - 如何根据java中的字符串日期和动态子字符串对字符串进行排序?

拆分字符串>单词和字符子列表的列表

根据子字符串拆分列表

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

根据子列表是否具有指定的字符串对带有子列表的列表进行排序

Python:如何根据日期和时间对字符串值列表进行排序?

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

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

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

根据字符串将字符串列表拆分为子列表列表

按特定元素和该元素的子字符串对元组列表进行排序

根据字符串拆分将列表拆分为子列表

如何根据子字符串JS对字符串进行排序

根据字典值字符串中存在的“子字符串”对字典进行排序

根据文件路径中的子字符串将文件路径列表拆分为子列表

Python根据列表中字符串的出现次数对字符串进行排序

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

如何根据列表中设置的顺序,通过键中包含的子字符串对 Python 字典进行排序?

根据特定字符串将列表拆分为子列表

根据字符串中的整数将列表拆分为子列表

R根据子字符串对字符串排序

根据给定映射中字符串的值对字符串列表进行排序

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

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

根据另一个列表中子字符串的顺序对列表进行排序

R 通过特殊字符“+”拆分字符串并根据条件对拆分字符串进行分类