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)
所以我尝试做的是询问用户输入 - “firstsentence”。然后我会尝试将输入的句子分成单词并将它们存储在数组(列表)my_list中。我不知道如何将分离的单词转换为数字(它们在句子中的位置),然后将输入(“firstsentence”)打印为整数版本。 'aword'是我过去常常尝试并确定该单词是否在句子中重复。这很令人困惑,这是一个例子: - “我喜欢编码,因为我喜欢它而且我非常喜欢它” 这里有15个字。在这15个中,只有10个不同。所以重复的单词必须被放入数组中相同的整数(即使它们的位置不同,它们的实际单词是相同的)值。我要打印的代码应该如上所示: - 1 2 3 4 5 6 1 2 7 8 1 2 7 9 10.我真的很困惑如何将分隔的单词存储为不同的值(整数),然后特别是如何将相同的重复单词存储为一个值,以及然后打印出整件事。感谢那些帮助的人。非常感谢:-)。
答案 0 :(得分:0)
我的回答是故意不完整的。很明显,你是新手,而新的一部分就是发现代码是如何工作的。但是你缺乏一些关于如何处理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个单词时,这可能无关紧要,但如果你看着20,000,000,000字呢?你真的只想要一个循环。但采取一些小步骤。首先弄清楚如何用两个循环来做,然后再继续将它们全部放在一个。