问我:通过过滤 lowers 列表,创建并打印一个单词的前半部分与后半部分匹配的单词列表。示例包括“bonbon”、“froufrou”、“gaga”和“murmur”。
到目前为止我所拥有的:
[word for word in lowers if list.(word)(1:len(word)/2:)==list.(word)(len(word)/2::)]
我不确定如何将单词列成列表,因此我只能将某些字符用于此过滤器。我知道这行不通,但到目前为止这是我的逻辑。
问我:通过过滤 lowers 列表,创建并打印一个单词的前半部分与后半部分匹配的单词列表。示例包括“bonbon”、“froufrou”、“gaga”和“murmur”。
到目前为止我所拥有的:
[word for word in lowers if list.(word)(1:len(word)/2:)==list.(word)(len(word)/2::)]
我不确定如何将单词列成列表,因此我只能将某些字符用于此过滤器。我知道这行不通,但到目前为止这是我的逻辑。
试试这个:
[word for word in lowers if word[len(word)//2:] == word[:len(word)//2]]
逻辑错误:您从索引 1 而不是 0 切片list.(word)(1:len(word)/2:)
语法错误:list.(word)
语法不正确,列表切片使用 [ ] 而不是 ( )。简单地用word[start:stop]
它来打破它
采用:
[word for word in lowers if word[:len(word)//2]==word[len(word)//2:]]
编辑:感谢 Ignacio Vazquez-Abrams 的评论 - 使用整数除法 ( // 运算符 ) 实现 Python 3 兼容性