繁体   English   中英

以特定方式浏览列表

[英]Going through the list in a specific way

我有一个单词列表,我的输入是列表前半部分的单词之一(在这种情况下,这个列表是一首德语歌曲)。 现在我把这个词的长度和这个词在列表中的长度跳起来,fe列表中的第一个词是“Es”,长度是2。现在我们从“Es”开始计数2次,我们按词着陆“茨威”。 我应该通过此列表 go 并检查该单词是否再次出现在列表的后半部分。

我尝试这样做,但是当我需要跳转列表中单词的长度时遇到问题。 我正在使用单词长度,然后我需要添加列表中之前出现的单词直到这个单词。 这是我得到错误的地方。

song = ["Es", "gingen", "zwei", "Parallelen",
"ins", "Endlose", "hinaus",
"zwei", "kerzengerade", "Seelen",
"und", "aus", "solidem", "Haus",

"Sie", "wollten", "sich", "nicht", "schneiden",
"bis", "an", "ihr", "seliges", "Grab",
"Das", "war", "nun", "einmal", "der", "beiden",
"geheimer", "Stolz", "und", "Stab",

"Doch", "als", "sie", "zehn", "Lichtjahre",
"gewandert", "neben", "sich", "hin", #hin[42]
"da", "wards", "dem", "einsamen", "Paare",
"nicht", "irdisch", "mehr", "zu", "Sinn",

"Warn", "sie", "noch", "Parallelen",
"Sie", "wußtens", "selber", "nicht", 
"sie", "flossen", "nur", "wie", "zwei", "Seelen",
"zusammen", "durch", "ewiges", "Licht",

"Das", "ewige", "Licht", "durchdrang", "sie",
"da", "wurden", "sie", "eins", "in", "ihm",
"die", "Ewigkeit", "verschlang", "sie",
"als", "wie", "zwei", "Seraphim"]

word = input("Enter a word")

if word in song[0:43]:
    print(word)
    a = song[len(word)+song[0:word]]
    print(a)

我不能 100% 确定您在哪里遇到问题,但根据最初的描述,您可以使用列表的index function 来确定值的位置。

然后,您可以通过在此处找到的单词的长度来增加 index 的值。

在将找到的值添加到列表之前,检查它是否已经存在并且 - 如果存在 - 跳过它。

song = ["Es", "gingen", "zwei", "Parallelen",
"ins", "Endlose", "hinaus",
"zwei", "kerzengerade", "Seelen",
"und", "aus", "solidem", "Haus",

"Sie", "wollten", "sich", "nicht", "schneiden",
"bis", "an", "ihr", "seliges", "Grab",
"Das", "war", "nun", "einmal", "der", "beiden",
"geheimer", "Stolz", "und", "Stab",

"Doch", "als", "sie", "zehn", "Lichtjahre",
"gewandert", "neben", "sich", "hin", #hin[42]
"da", "wards", "dem", "einsamen", "Paare",
"nicht", "irdisch", "mehr", "zu", "Sinn",

"Warn", "sie", "noch", "Parallelen",
"Sie", "wußtens", "selber", "nicht", 
"sie", "flossen", "nur", "wie", "zwei", "Seelen",
"zusammen", "durch", "ewiges", "Licht",

"Das", "ewige", "Licht", "durchdrang", "sie",
"da", "wurden", "sie", "eins", "in", "ihm",
"die", "Ewigkeit", "verschlang", "sie",
"als", "wie", "zwei", "Seraphim"]

#word = input("Enter a word")
word = "zwei" # The input
found_list = [] # The list for found words
index = song.index(word) # Get the index of the first instance of "word"
while True: # Keep running until "break"
    try: # This will throw an error when index is out of range
        # If the word at index is not already in found_list, add it
        if song[index] not in found_list: 
            found_list.append(song[index])
        # regardless of whether you add the found word, 
        # increment the index by the length of the found word
        index += len(song[index]) 
    except: 
        break

print(found_list)

OUTPUT:

['zwei', 'hinaus', 'solidem', 'bis', 'seliges', 'beiden', 'als', 'Lichtjahre', 'nicht', 'Warn', 'Sie', 'ewiges', 'sie', 'ihm', 'verschlang']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM