代码之家  ›  专栏  ›  技术社区  ›  Ixchelle Hernández

如何按字母顺序从特定字母开始组织字符串列表?

  •  2
  • Ixchelle Hernández  · 技术社区  · 8 年前

    例如,如果我有:

    x = ['5 Gabriela', '4 Isabel', '1 Daniel', '1 Gabriel']

    我希望输出列表按名称而不是数字进行组织:

    output_list = ['1 Daniel', '1 Gabriel', '5 Gabriela', '4 Isabel']

    我尝试了一些切片,但我的输出列表没有数字:

    names = []
    for k in range (0, len(sum_sor)):
        start = x[k][2::]
        names.append(start)
        y = sorted(names)
    print(y)
    

    输出: y = ['Daniel', 'Gabriel', 'Gabriela', 'Ixchelle']

    3 回复  |  直到 8 年前
        1
  •  4
  •   Paweł Kordowski    8 年前

    使用 sorted 具有 key 作为lambda,返回 x

    sorted(x, key=lambda y: y.split()[1])

        2
  •  0
  •   Right leg A.s. Bhullar    8 年前

    下面是另外两种方法,使用regex和 sorted 作用

    下面将首先从字符串中删除数字,并对元素进行排序 x 根据他们的数字免费版本。

    sorted(x, key=lambda y: re.sub("\d+", "", y))
    

    这将首先查找一系列非数字字符,然后从中排序元素 x个 按照这个顺序。

    sorted(x, key=lambda y: re.search("\D+", y).group())
    
        3
  •  0
  •   Emanuel L    8 年前

    我对python比较陌生,但我会制作一个函数来获取第三个字母。假设每个都有这样的方式:

    def get_letter(sample_string):
        return sample_string[2]
    

    现在,我们可以使用此函数作为键对列表进行排序:

    x = ['5 Gabriela', '4 Isabel', '1 Daniel', '1 Gabriel']
    output_list = sorted(x,key=get_letter)
    

    希望我能帮忙,祝你好运!