0

我正在尝试做的事情:创建并打印一个单词列表,其中单词的反面位于小写单词集中。例如,“timer”及其反义词“remit”都在小写单词列表中。

到目前为止我所拥有的:

     s = set(lowers)
     [word for word in s if list(word).reverse() in s]

我只是得到一个空列表。

4

5 回答 5

4

只需使用[::-1],这里不需要使用 list() 并在原地更改列表时list(word).reverse()返回。None您也可以使用"".join(reversed(word)),但我想这word[::-1]很简单:

[word for word in s if word[::-1] in s]

In [193]: word="timer"

In [194]: print list(word).reverse()
None

In [195]: word[::-1]
Out[195]: 'remit'

In [196]: "".join(reversed(word))
Out[196]: 'remit'
于 2012-11-12T19:06:14.620 回答
3

list.reverse()方法将列表反转到位。它的返回值为None。如果你想反转一个字符串,只需使用word[::-1].

于 2012-11-12T19:06:52.787 回答
2

list.reverse()将列表反转到位并且不返回任何内容。你需要"".join(reversed(list)).

于 2012-11-12T19:06:44.927 回答
2

试试这个:

s = set(lowers)
[word for word in s if word.lower()[::-1] in s]
于 2012-11-12T19:08:26.793 回答
0

您应该[::-1]用于反转字符串 -

[word for word in s if word[::-1] in s]
于 2012-11-12T19:10:23.980 回答