python - d如果在用户输入中不重复,则使用重复字母消除打印单词
问题描述
我在每个文件中有一个带有单词的文件。用户输入一些单词,脚本应该从给定的单词中打印单词。例如:“Donald Trump”输出:['lad', 'mould', 'trump', 'land', 'donald', 'dump'] 但是我无法解决如何消除重复字母的打印单词除非字母在输入中重复,否则它不会打印类似:laddd 或 dumpp 等。
letters = input('input words: ') #input words to generate words
letters = letters.replace(' ', '') #eliminate whitespace
letters= list(letters) #create a list out of given words
words = open('wordfile').read().splitlines() #read the file with words
word_list=[]
print(".......................")
for word in words:
if all(element in letters for element in word): #if has letters from list
print (word)
word_list.append(word)
print(word_list)
解决方案
check 试图查看从提供的有限字母列表中删除的单词中的每个字母## i.e letters.remove(i.lower() i here is the letter in word ##
,即在您的示例donaldtrump中,现在作为示例,如果laddd来了,字母d将从donaldtrump中删除两次,而第三次删除它将引发异常(在这种情况下return False ) 因为在donaltrump中没有 3rd d。我希望这有帮助
def check(word,letter):
letters = list(letter)
try:
for i in word:
letters.remove(i.lower())
return True
except Exception as e:
return False
letters = input('input words: ')
letters = letters.lower().replace(' ', '')
words = open('wordfile').read().splitlines()
word_list=[]
print(".......................")
for word in words:
if(check(word,letters)):
word_list.append(word)
print(word_list)
推荐阅读
- javascript - 我需要帮助阅读此代码以了解它在做什么,以便将其转换为 javascript
- sql-server - 使 GroupBy 查询区分大小写
- kubernetes - 当 ReplicaSet=2 时发现+请求 Kubernetes 上的 Kafka Streams 实例
- python - 按年份对数据框进行分组以绘制较小的图表
- python - Cloud Composer / Airflow:只能在 Operator 之间设置关系;收到 PythonOperator
- regex - 如何使用 grep 查找 3 位数字且仅 3 位数字?
- docker - 使 NFS 共享在 Openstack 上运行的 Kubernetes pod 中可见
- php - Laravel Horizon 队列处理,但未收到预期结果
- python - Windows 10 - python pip 不工作(添加了环境变量)
- html - 有没有办法只拆分一些标签垂直分成两列?