所以我有这段代码:
lst = ["kjøres", "kjørt", "kjørende", "kjører", "kjørte", "kjørte", "kjøre", "kjørt", "kjørt", "kjørte", "kjørt", "kjør"]
soutLst = []
for i in lst:
holder = str(i + " - index: " + str(lst.index(i)))
if holder not in soutLst:
soutLst.append(str(i + " - index: " + str(lst.index(i))))
else :
print(holder + " not in soutLst")
print("----------")
for x in soutLst:
print(x)
我得到以下输出:
kjørte - index: 4 not in soutLst
kjørt - index: 1 not in soutLst
kjørt - index: 1 not in soutLst
kjørte - index: 4 not in soutLst
kjørt - index: 1 not in soutLst
----------
kjøres - index: 0
kjørt - index: 1
kjørende - index: 2
kjører - index: 3
kjørte - index: 4
kjøre - index: 6
kjør - index: 11
并且您可以看到它跳过了一些索引,您知道如何重写以将所有字符串添加到soutLst列表中吗?我认为这是因为Lst中的某些元素相同,但是我找不到解决方法。
它应该在soutLst中显示所有12个元素
此外,当我尝试列出未包含在最终for语句中的内容时,它只会显示相同的内容
答案 0 :(得分:0)
不确定为什么要创建holder
字符串,检查它是否存在于soutLst
中,并且还有一个else
,原因是不确定的
您可以使用enumerate
代替所有这些,当您遍历索引时,它会同时为您提供索引和列表中的值,并使用它来创建soutLst
lst = ["kjøres", "kjørt", "kjørende", "kjører", "kjørte", "kjørte", "kjøre", "kjørt", "kjørt", "kjørte", "kjørt", "kjør"]
soutLst = []
for idx, item in enumerate(lst):
soutLst.append(item + " - index: " + str(idx))
print("----------")
for x in soutLst:
print(x)
输出将为
----------
kjøres - index: 0
kjørt - index: 1
kjørende - index: 2
kjører - index: 3
kjørte - index: 4
kjørte - index: 5
kjøre - index: 6
kjørt - index: 7
kjørt - index: 8
kjørte - index: 9
kjørt - index: 10
kjør - index: 11
答案 1 :(得分:0)
所以我自己重写了它,并把它哑了下来,显然我把这个问题弄得太复杂了: 这是一种可以满足我需求的解决方案:
lst = ["kjøres", "kjørt", "kjørende", "kjører", "kjørte", "kjørte", "kjøre", "kjørt", "kjørt", "kjørte", "kjørt", "kjør"]
for i in range(len(lst)):
print(str(lst[i] + " - index: " + str(i)))
哪个输出如下:
kjøres - index: 0
kjørt - index: 1
kjørende - index: 2
kjører - index: 3
kjørte - index: 4
kjørte - index: 5
kjøre - index: 6
kjørt - index: 7
kjørt - index: 8
kjørte - index: 9
kjørt - index: 10
kjør - index: 11
答案 2 :(得分:0)
我看到python列表lst中有重复项。既然您已有条件:
if not holder in soutLst:
soutLst.append(str(i + " - index: " + str(lst.index(i))))
,这将避免将除了第一次出现的那些重复项添加到另一个python列表soutLst中。另外,我建议您使用/更正日志记录,如下所示:
for i in lst:
holder = str(i + " - index: " + str(lst.index(i)))
if holder not in soutLst:
soutLst.append(str(i + " - index: " + str(lst.index(i))))
else :
print(holder + " already found in soutLst")
现在更有意义了。