firstsentence = input('Enter a sentence: ')
firstsentence = firstsentence.lower()
words = firstsentence.split(' ')
my_list = []
my_list.append(words)
for (i, firstsentence) in enumerate(my_list):
if (aword == my_list): #This is where i get confused
print(str(i+1)+ ' position')
print (my_list)因此,我试图做的是要求用户输入-“第一句”。然后,我将尝试将输入的句子拆分成单词,并将它们存储在数组(list) my_list中。我被困在如何将分离的单词转换成数字(它们在句子中的位置),然后打印输入(“第一句”)作为整数版本。‘'aword’是我过去用来识别这个词是否在句子中重复的东西。这是相当令人困惑的,这里有一个例子:“我喜欢编码,因为我喜欢它,我非常喜欢它。”这里有15个单词。在这15个国家中,只有10个是不同的。因此,重复的单词必须放在数组中相同的整数中(即使它们的位置不同,它们的实际单词是相同的)值。我想打印出来的代码应该如下所示:-1 2 3 4 5 6 1 2 7 2 2 7 9 10。我真的很困惑如何将分隔词存储为不同的值(整数),然后特别是如何存储相同的重复单词作为一个值,然后打印出整件事。感谢那些帮忙的人。将不胜感激:)
发布于 2016-12-16 17:46:06
我的回答是故意不完整的。很明显,您在这方面是新的,其中的一部分是发现代码是如何工作的。但是,在python中,对于如何处理列表缺乏一些基本概念,这将为您指明正确的方向。
firstsentence = input('Enter a sentence: ')
firstsentence = firstsentence.lower()
words = firstsentence.split(' ')
my_list = []
for word in words:
print(word in my_list)
# You can do something more useful than print here, right?
# Maybe add the specific word to my_list...
for word in words:
print(my_list.index(word))
# This gives you the index, but you need to figure out how to output it the way you want
# Note that indices in python start at 0 while your sample output starts
# at 1. So maybe do some addition somewhere in here.那么,这里发生了什么?
我们要做两次传球。通常,如果您能够将一个问题分解为离散的步骤,您将在编程方面取得很大进展。在本例中,您的问题有两个步骤--查找每个单词第一次出现的索引,然后输出正确的索引。
在第一遍中,您将创建一个独特的单词列表,在这个列表中,它们的顺序反映了它们在句子中的顺序。
在第二遍中,您将遍历原来的句子,查找第一次出现的位置,并按照您需要的方式对其进行格式化。
如果你真的很专注,你就会意识到:你可以轻而易举地做到这一点。第二关要求什么?只是你在my_list里要找的那个词。只要您满足这一要求,就可以将这两个循环组合在一起。这是一件好事--当你看20个单词时,这可能并不重要,但如果你看到的是2000万个单词呢?你真的只想要一个循环。但是迈出一小步。首先要弄清楚如何用两个循环来完成这个任务,然后再把它放在一个循环中。
https://stackoverflow.com/questions/41189295
复制相似问题