我目前遇到了麻烦。我需要我的代码来回忆列表中每个单词的位置并打印出来,我不知道从哪里开始。
所以说我输入:"我喜欢奶酪,因为它的奶酪"我需要它来打印所有单词的位置,以便打印类似" 0,1,2,3,4,5,3和#34;的内容。有人可以帮忙吗?
我确信我需要使用" len"或者"字典"但我不确定如何
words = input("Sentence here:")
word = input("Word here:")
print ([i + 1 for i in range(len(words.split(" "))) if words.split(" ")[i].lower() == word.lower()])
#i know this prints the postions of a single selected word from the list but im sure i may have to use the same concept?
答案 0 :(得分:0)
您的问题有点不清楚但似乎您正在寻找类似的内容:
sentence = input("Sentence here:")
words = sentence.split()
for i in words:
print(i + ": " + str(sentence.find(i)))
或者如果你想打印出你在问题中显示的逗号分隔的数字,只需将数字保存到列表中,然后在for循环后将它们打印在一起。
答案 1 :(得分:0)
尝试此操作来存储所有不同单词的第一个位置。
words = input("Sentence here:")
allwords = words.split(" ");
mydict = dict()
for i in range(len(allwords)):
if allwords[i] not in mydict.keys():
mydict[allwords[i]] = i;
答案 2 :(得分:0)
>>> s = 'i like cheese because its cheese'
>>> words = s.split()
>>> list(map(words.index, words))
[0, 1, 2, 3, 4, 2]
答案 3 :(得分:-1)
我已经用C#编写了我喜欢的代码。您可以使用您所用语言的逻辑。 逻辑: a)将单个单词存储在字典中。该字典将密钥存储为句子中的单词及其索引作为其值。
Dictionary<string,int> _indexes = new Dictionary<string,int>();
Key = word和Value =单词的位置。在此,请注意重复。 如果单词已经存在,请不要将其存储在字典中。
b)使用您的语言使用拆分器提供程序将句子拆分为单个单词。
c)插入每个单词,除非它在字典中是重复的,作为键及其索引作为Key.Value对的值。
d)获取单词并将索引打印为字典中单词的值(如果存在)。
代码:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter the sentence below :");
string sentence = Console.ReadLine();
var helper = new FindWordPosition();
helper.StoreWordIndexes(sentence);
Console.WriteLine("Type a word and find out its index");
string word = Console.ReadLine();
helper.PrintPosition(word);
Console.ReadLine();
}
}
public class FindWordPosition
{
private readonly Dictionary<string, int> _indexes = new Dictionary<string, int>();
public void StoreWordIndexes(string sentence)
{
string[] words = sentence.Split(' ');
int count = 0;
foreach (var word in words)
{
if (!_indexes.ContainsKey(word))
{
_indexes.Add(word, count);
}
count++;
}
}
public void PrintPosition(string word)
{
if (!_indexes.ContainsKey(word))
{
Console.WriteLine("Word doesnot exist in the sentence");
return;
}
Console.WriteLine("Position of the word {0} is {1}", word, _indexes[word]);
}
}
希望它适合你。