如何获取单词列表,并删除任何具有多个相同字母的单词

时间:2017-05-26 03:01:50

标签: python list

说我有5个单词的列表

my_list = ['python', 'apple', 'always', 'sky', 'lie']

如何使用函数单独扫描每个单词并删除具有相同字母的任何单词多次出现?

因此在函数运行后,列表应该只包含

my_list = ['python', 'sky', 'lie']

3 个答案:

答案 0 :(得分:2)

单行:

result = [item for item in my_list if len(item) == len(set(item))]
  • 使用列表理解制作新列表
  • 使用set检查长度是否发生变化(表示存在重复)

您可以编写一个函数以使其更具可读性:

def is_unique_string(s):
    return len(s) == len(set(s))

result = [item for item in my_list if is_unique_string(s)]

此处已有讨论:Counting repeated characters in a string in Python

答案 1 :(得分:0)

这是你的答案

list = ['python', 'apple', 'always', 'sky', 'lie']
new_list = []
for string in list:
    if len(string) == len(set(string)):
        new_list.append(string)

print(new_list)

答案 2 :(得分:0)

def has_duplicate(s):
    for x in xrange(len(s)-1):
       if s[x] in s[x+1:]:
         return true
    return false

l=["python", "apple", "always", "sky", "lie"]
y=[s for s in l if not has_duplicate(s)]

检查第n个字符是否在第n个字符的字符串中。即

“苹果”

  • 检查“pple”中的“a”
  • 检查“ple”中的“p”,匹配