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

Python 如何获取单词列表,并删除具有多个相同字母的任何单词,python,list,Python,List,假设我有5个单词的列表 my_list = ['python', 'apple', 'always', 'sky', 'lie'] 如何使用函数逐个扫描每个单词,并删除具有相同字母的任何单词多次出现 因此,在函数运行之后,列表应该只包含 my_list = ['python', 'sky', 'lie'] 一行: result = [item for item in my_list if len(item) == len(set(item))] 使用列表理解创建新列表 使用set检查长度

假设我有5个单词的列表

my_list = ['python', 'apple', 'always', 'sky', 'lie']
如何使用函数逐个扫描每个单词,并删除具有相同字母的任何单词多次出现

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

my_list = ['python', 'sky', 'lie']
一行:

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)]
这里已经有一个讨论:。

这是你的答案

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)
检查第n个字符是否在第n个字符处切片的字符串中。即

“苹果”

  • 在“pple”中勾选“a”
  • 选中“ple”中的“p”,匹配

为编辑干杯@gahan正在尽可能快地键入此内容。这是因为一个集合只存储每个字符一次-因此,如果单词的长度与集合的长度相同-每个字母都是唯一的。@cal97g感谢您的解释。
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)]