【问题标题】:words that have same first and last characters in the list [duplicate]列表中第一个和最后一个字符相同的单词[重复]
【发布时间】:2018-08-03 02:40:28
【问题描述】:

我正在尝试使用Python 在下面的列表中选择具有相同首尾字符的单词:

我知道我需要使用 random_strings 但我不知道如何。

['xerox', 'trust', 'follow', 'blurb', 'maroon', 'ready', 'salad', 'yummy', 'evidence']

我正在寻找这个结果:

['xerox', 'trust', 'blurb', 'yummy', 'evidence']

谢谢

【问题讨论】:

  • 在提出关于 SO 的问题时,请尝试包括您已经尝试过的方法。 SO 是一个论坛,人们帮助您找到解决方案,而不是为您写完整的答案。
  • 很抱歉这是我第一次在这里提问。我将发布我的下一个问题的方法。

标签: python python-3.x python-2.7


【解决方案1】:

我建议你过滤掉endswith第一个字符的词。

words = ['xerox', 'trust', 'follow', 'blurb', 'maroon',
         'ready', 'salad', 'yummy', 'evidence']

result = [w for w in words if w.endswith(w[:1])]

这有一个特殊的行为,它甚至可以在空字符串上工作。

【讨论】:

    【解决方案2】:

    另一种可能是在 Python3 中使用解包:

    s = ['xerox', 'trust', 'follow', 'blurb', 'maroon', 'ready', 'salad', 'yummy', 'evidence'] 
    final_words = [''.join([a, *b, c]) for a, *b, c in s if a == c]
    

    输出:

    ['xerox', 'trust', 'blurb', 'yummy', 'evidence']
    

    【讨论】:

      【解决方案3】:

      试试这个代码!

      我还附上了代码输出的屏幕截图。

      list = ['xerox', 'trust', 'follow', 'blurb', 'maroon', 'ready', 'salad', 'yummy', 'evidence']
      for i in range(0,len(list)):
        if list[i][:1]==list[i][-1:]:
          print(list[I])
      

      【讨论】:

        【解决方案4】:
        >>> words = ['xerox', 'trust', 'follow', 'blurb', 'maroon', 'ready', 'salad', 'yummy', 'evidence']
        >>> [w for w in words if w[0] == w[-1]]
        ['xerox', 'trust', 'blurb', 'yummy', 'evidence']
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-03-17
          • 2019-06-01
          • 1970-01-01
          • 2019-01-11
          • 1970-01-01
          • 1970-01-01
          • 2021-03-18
          相关资源
          最近更新 更多