精华内容
下载资源
问答
  • 我们经常遇到一些文件名是字符加上数字的组合,这个时候直接用 sort() 或者 sorted() 就无法按照需求进行排序。 比如: name_list = ['img_496.jpg', 'img_414.jpg', 'img_106.jpg', 'img_330.jpg', 'img_507.jpg'] ...

    我们经常遇到一些文件名是字符加上数字的组合,这个时候直接用 sort() 或者 sorted() 就无法按照需求进行排序。
    比如:

    name_list = ['img_496.jpg', 'img_414.jpg', 'img_106.jpg', 'img_330.jpg', 'img_507.jpg']
    

    这里我们可以引入正则表达式,来帮助排序:

    import re
    new = sorted(name_list,key = lambda i:int(re.findall(r'\d+',i)[0]))
    print(new)
    
    ['img_106.jpg', 'img_330.jpg', 'img_414.jpg', 'img_496.jpg', 'img_507.jpg']
    

    关于正则表达式,不清楚的可以查阅:

    搞清楚 Python 正则表达式,简单易懂看这一篇就够了

    展开全文
  • LeetCode 791 自定义字符串排序Python) 题目描述如下: 字符串S和 T 只包含小写字符。在S中,所有字符只会出现一次。 S 已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,...

    LeetCode 791 自定义字符串排序 (Python)

    题目描述如下:

    字符串S和 T 只包含小写字符。在S中,所有字符只会出现一次。

    S 已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果Sxy之前出现,那么返回的字符串中x也应出现在y之前。

    返回任意一种符合条件的字符串T

    示例:
    输入:
    S = "cba"
    T = "abcd"
    输出: "cbad"
    解释: 
    S中出现了字符 "a", "b", "c", 所以 "a", "b", "c" 的顺序应该是 "c", "b", "a". 
    由于 "d" 没有在S中出现, 它可以放在T的任意位置. "dcba", "cdba", "cbda" 都是合法的输出。
    

    注意:

    • S的最大长度为26,其中没有重复的字符。
    • T的最大长度为200
    • ST只包含小写字符。

    思路:

    • 创建list a用以依次存放字符串S中字母的AsicII码的值-97
    • 创建长度为26的数组存放字符串T中每个字母出现的频率
    • 按照list a中的字母顺序将T中的字母依次加入result中,若某字母出现两次,则加入两次
    • 将T中有但S中没出现的字母再加入result中

    代码如下:

    from numpy import *
    class Solution(object):
        def customSortString(self, S, T):
            """
            :type S: str
            :type T: str
            :rtype: str
            """
            a=[]
            b=zeros(26)
            result=''
            for i in range(0,len(S)):
                a.append(ord(S[i])-97)
            for i in range(0,len(T)):
                index=ord(T[i])-97
                b[index]=b[index]+1
            for i in range(0,len(a)):
                index=a[i]
                while b[index]>0:
                    result=result+chr(a[i]+97)
                    b[index]=b[index]-1
            for i in range(0,26):
                while b[i]>0:
                    result=result+chr(i+97)
                    b[i]=b[i]-1
            return result
                

    展开全文
  • 编写一个程序,将输入字符串中的字符按如下规则排序(一个测试用例可能包含多组数据,请注意处理)。 规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出: epTy 规则 2 :同一个英文字母的大...

    编写一个程序,将输入字符串中的字符按如下规则排序(一个测试用例可能包含多组数据,请注意处理)。

    规则 1 :英文字母从 A 到 Z 排列,不区分大小写。

    如,输入: Type 输出: epTy

    规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。

    如,输入: BabA 输出: aABb

    规则 3 :非英文字母的其它字符保持原来的位置。

    如,输入: By?e 输出: Be?y

    样例:

    输入:

    A Famous Saying: Much Ado About Nothing(2012/8).

    输出:

    A aaAAbc dFgghh : iimM nNn oooos Sttuuuy (2012/8).

    示例1

    输入

    A Famous Saying: Much Ado About Nothing (2012/8).
    

    输出

    A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
    def f(s):
        a, L = [], len(s)
        for i in range(L):
            if s[i].isalpha():   #判断是否为字母
                a.append((s[i], s[i].lower(), i))   #在列表中添加小列表(这个元素,以及小写,和位置)
        b = sorted(a, key=lambda x:(x[1], x[2], x[0]))  #lanbda是匿名函数,x是参数,冒号后边是表达式,#这个的意思是以key函数的顺序排序,也就是先紧着第二个的顺序排序,然后是第三个,第一个重要性最低。注意的是,原列表中的元素顺序不变
        result = ''
        for i in xrange(L):
            if s[i].isalpha():
                result += b[0][0]
                del b[0]    #删除这个元素,后边的元素依次往前进1
            else:
                result += s[i]
        return result
          
    try:
        while 1:
            print f(raw_input())
    except:
        pass

     

    展开全文
  • 自定义字符串排序(python)

    千次阅读 2019-05-18 10:57:06
    字符串S和T只包含小写字符。在S中,所有字符只会出现一次。 S已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在y之前。 返回...

    题目描述:

    字符串S和 T 只包含小写字符。在S中,所有字符只会出现一次。

    S 已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果Sxy之前出现,那么返回的字符串中x也应出现在y之前。

    返回任意一种符合条件的字符串T

    示例:

    输入:

    S = "cba"

    T = "abcd"

    输出:"cbad"

    解释:

    S中出现了字符"a","b","c",所以"a","b","c"的顺序应该是"c","b","a".

    由于"d"没有在S中出现,它可以放在T的任意位置。"dcba","cdba","cbda"都是合法的输出。

    注意:

    • S的最大长度为26,其中没有重复的字符。
    • T的最大长度为200
    • ST只包含小写字符。
    class Solution(object):
        def customSortString(self, S, T):
            """
            :type S: str
            :type T: str
            :rtype: str
            """
            #思路:依次遍历S中的每一个位置,若其在T中出现,则将其保存到要输出的结果当中,并在T中将该字符删除;遍历完成后,将T中剩余字符和要输出的结果进行拼接输出
            res = ""
            for i in range(len(S)):
                if S[i] in T:
                    tmp = T.split(S[i])
                    res = res + S[i] * (len(tmp)-1)
                    T = ''.join(tmp)
                    
            return res + T

    菜鸟一枚,代码仅供参考,如有问题,望指正~

    展开全文
  • 现有字符串 s = ‘asdf234GDSdsf23’,我想对这个字符串进行重新排序; 排序规则是:小写<大写<奇数<偶数 首先涉及到的内容是 sorted 函数的使用 我的 第一篇排序文章 中有谈到该函数的使用。如有需要可以...
  • 编写一个程序,将输入字符串中的字符按如下规则排序规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出: epTy 规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入: ...
  • 字符串S和T只包含小写字符。在S中,所有字符只会出现一次。 S已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在y之前。 返回...
  • 华为机试-字符串排序python实现)

    千次阅读 2019-11-23 11:51:21
    编写一个程序,将输入字符串中的字符按如下规则排序规则 1 :英文字母从 A 到Z 排列,不区分大小写。 规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。 规则 3 :非英文字母的其它字符保持原来的...
  • 编写一个程序,将输入字符串中的字符按如下规则排序规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出: epTy 规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入: ...
  • 有时候处理数据时,想要按照字符串中的数字的大小进行排序。 譬如,存在一组记录文件,分别为‘1.dat’,'2.dat'... 当我把该文件夹中的所有记录文件名读到一个列表中,这些字符串的排列方式为: 如何让这些字符串...
  • 字符串S和 T 只包含小写字符。在S中,所有字符只会出现一次。 S 已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在y之前。 ...
  • 作者:禅在心中出处:http://www.cnblogs.com/pinking/本文版权归作者和...有时候处理数据时,想要按照字符串中的数字的大小进行排序。 譬如,存在一组记录文件,分别为‘1.dat’,'2.dat'... 当我把该文件夹中的...
  • 字符串S和 T 只包含小写字符。在S中,所有字符只会出现一次。 S 已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在y之前。 ...
  • 编写一个程序,将输入字符串中的字符按如下规则排序规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出: epTy 规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入: ...
  • python字符串连接的四种方式 1、字符串之间连接 ‘aa’ ‘bb’ 可以中间为空格 或者什么都没有。那么输出都是两者之间紧密相连。 2、字符串+数字 'aa' +90 这样会报错,因为不同类型不能相加,可以用 ‘aa...
  • 编写一个程序,将输入字符串中的字符按如下规则排序 规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出: epTy 规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入: ...
  • 最初的字符串列表 ['A', 'A+', 'A-', 'AA', 'AA+', 'AA-', 'AAA', 'B', 'B-', 'BB', 'BB+', 'BBB'...
  • 输入一个字符串(不含空格),请寻找输入中包含的所有蛇形字符串。 1. 蛇形字符串的定义: ...2. 从输入字符串中寻找字符组成蛇形字符串(字符顺序不限),符合规则: 2.1 每次寻找最长的蛇形字符串。...
  • @华为面试题目:字符串解码,python解法 题目描述 将一段压缩后的字符串解压缩,并且排序输出。 解压规则: 每个字符串后面跟着一个数字,表示这个字符串的重复次数。例如,”a5”解压后的结果为”aaaaa”;’abc3’...
  • Python3字符串字符串比较 1、比较字符串是否相同: ==:使用==来比较两个字符串内的value值是否相同 ... =、比较的规则为:从第一个字符开始比较,排序在前边的字母为小,当一个字符串全部...
  • 采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出。 请注意本题有多组输入用例。 输入描述: 一组输入整数序列I和一组规则整数序列R,I和R序列的第一个整数为序列的个数(个数不包含第一个整数...
  • 按照指定规则对输入的字符串进行处理。 详细描述: 将输入的两个字符串合并。 对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标意思是字符在字符串中的位置。 对...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 158
精华内容 63
关键字:

python字符串排序规则

python 订阅