最好的解释方式:
我需要显示包含双字符的单词。
我认为最好的方法是为每个角色组成一个列表。当找到一个双字符并到达一个空格(单词的末尾)时,将列表的内容转换为字符串,然后放置在单独的数组中。然后清除列表中的内容。
如果在找到双字母(单词不包含一个字母)之前已到达空格,则清除列表。
**问题:什么是最好的方法?我试图逐个字符地追加到列表中,但是在打印列表时为空。
答案 0 :(得分:1)
获取文件中所有单词的列表(通过分隔空格并调用.strip()
来删除所有换行符),然后对其进行迭代,仅打印包含双字符的单词。观察是否存在重复的一种好方法是将字符串转换为一组字符(按定义,其中不包含重复),然后查看该字符集的长度是否小于字符串。如果是这样,那么就会有重复。
with open('the_file') as f:
words = [w.strip() for w in f.read().split()]
for word in words:
if len(set(word)) < len(word):
print(word)
还有一个完整的例子:
$ cat the_file
hello there
what is going on?
$ python -q
>>> with open('the_file') as f:
... words = [w.strip() for w in f.read().split()]
... for word in words:
... if len(set(word)) < len(word):
... print(word)
...
hello
there
going