我试过使用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
预期的输出应该是组成单词的所有常用字母的组合(作为字符串类型),第一个字母为大写。你知道吗
您使用的
listtostring
函数是错误的,您应该在创建的每个排列上使用它,而不是在整个排列列表上。您可以使用capitalize()
将第一个字母大写。你知道吗这是修改后的代码,我删除了for循环,因为它什么也没做:
如果希望最后一行都是一个字符串,可以将其更改为以下内容:
相关问题 更多 >
编程相关推荐