繁体   English   中英

如何创建包含两个字符串之间所有常见字母组合的列表?

[英]How can I create a list with all the possible combinations of common letters between two strings?

我尝试使用set() ,因为它将仅打印两个集合的唯一元素。 在我的代码中, common_letters是两个字符串中的一组通用字母。 我正在尝试打印可以从common_letters元素生成的所有可能的单词组合,并且还尝试将该单词列表转换为每个字符串的首字母大写的单词列表。

到目前为止,这是我的代码:

import itertools as itr

def listtostring(s):
    string =" "
    return (string.join(s))

str1=input("Enter 1st string:")
str2=input("Enter 2nd string:")
common_letters=set(set(str1) & set(str2))

for letter in common_letters:
    common_letters.add(letter)
print("list of common letters : ",common_letters)

mylist=list(itr.permutations(common_letters))

print("Words generated from common letters are : ",listtostring(mylist))

但是,我收到以下错误:

File "C:/Users/problem_1.py", line 18, in <module>
    print("Words generated from common letters are : ",listtostring(mylist))

File "C:/Users/problem_1.py", line 5, in listtostring
    return (string.join(s))

TypeError sequence item 0: expected str instance, tuple found

预期的输出应该是构成单词(作为String类型)的常见字母与首字母大写的所有组合。

您使用的listtostring函数错误,您应该在创建的每个排列中使用它,而不是在整个排列列表中使用它。 您可以使用capitalize()将首字母大写。

这是修改后的代码,我删除了您的for循环,因为它没有执行任何操作:

import itertools as itr

def listtostring(s):
    string = ""
    return (string.join(s))

str1=input("Enter 1st string:")
str2=input("Enter 2nd string:")
common_letters=set(set(str1) & set(str2))
print("list of common letters : ",common_letters)

mylist=list(itr.permutations(common_letters))
finalList = [listtostring(x).capitalize() for x in mylist]

print("Words generated from common letters are : ", finalList)

如果希望最后一行都是一个字符串,则可以将最后一行更改为以下内容:

print("Words generated from common letters are : ", " ".join(finalList))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM