【问题标题】:lexicographical order in reverse order字典顺序倒序
【发布时间】:2018-03-25 10:11:33
【问题描述】:

我需要编写一个代码来对单词列表进行排序,并将它们按字典顺序从相反的顺序排列。例如,给定列表["harry", "harra", harrb"],我需要一种方法来反转每个单词,以便列表变为["yrrah", "arrah","brrah"]。然后我需要按字典顺序对其进行排序并将其反转回原来的顺序。所以它看起来像["harra", "harrb", "harry"]。我正在从文件ifile 中获取单词,但对于此代码,我只订购具有一定数量字母“n”的单词。

到目前为止,这是我的代码:

def getRhymeSortedCount(n,ifile,file):
    word_list = []
    for word in ifile:
        if len(word) == n:
            word_list.append(word.strip())
    arr = word_list
    arr.sort(key = lambda x : x[::-1])
    ofile.write("\n".join(word_list))

它正确地按最后一个字母对单词进行排序,但不采用字母数 = "n" 的单词我如何更改我的 len 语句以仅获取具有 n 个字母的单词?

【问题讨论】:

  • 在获取长度之前去掉空格。现在 len 在末尾包含换行符。
  • 你能告诉我如何实现吗?
  • 只需在if 之前插入word = word.strip()。然后你也可以稍后append(word)
  • nvm 弄明白了,谢谢!!

标签: python


【解决方案1】:

考虑给定的例子

list1=["harry", "harra", "harrb"]

使用列表推导得到 list1 的相反顺序,看起来像这样

list1=[x[::-1] for x in list1]

现在

list1=['yrrah','arrah','brrah']

使用sorted() 方法我们可以对list1 进行排序,如下所示

p=sorted(list1)

现在,

p=['arrah','brrah','yrrah']

使用列表推导得到 list1 的相反顺序,看起来像这样

list1=[x[::-1] for x in list1]

现在,

list1=['harra','harrb','harry']

因此,这是根据您的情况完成工作的一种方法。

【讨论】:

    猜你喜欢
    • 2022-11-16
    • 2016-03-13
    • 2021-06-10
    • 2010-10-24
    • 1970-01-01
    • 2012-05-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多