Python3阻止嵌套列表并显示列表中值的位置/索引

Python3阻止嵌套列表并显示列表中值的位置/索引,python,indexing,nested,Python,Indexing,Nested,正如标题所示,我从两次拆分中得到一个嵌套列表 “”join无法解决此问题。 我也不知道如何打印列表中单词的位置 目标是拆分选项卡上的id用户文本单词(有效),并打印单词及其在列表中的位置 import sys def main(): olist = [] for line in sys.stdin: i,u,t,w = line.split('\t') olist.append(w.split()) print(olist)

正如标题所示,我从两次拆分中得到一个嵌套列表

“”join无法解决此问题。 我也不知道如何打印列表中单词的位置

目标是拆分选项卡上的id用户文本单词(有效),并打印单词及其在列表中的位置

import sys
def main():
    olist = []
    for line in sys.stdin:
        i,u,t,w = line.split('\t')

        olist.append(w.split())
        print(olist)
        for num,name in enumerate(olist):
            print(num, name)
输出打印(olist):

输出打印(数量、名称):

期望输出=

RT [0]
@AfshinEllian1 [1]
: [2]
Kennelijk [3]

etc

如果我正确理解您的问题,这行:

  olist.append(w.split())
不是做你想做的事。您需要扩展列表:

  olist.extend(w.split())

连接两个列表。

无需将其拆分两次,只需通过以下方式直接打印:

import sys

def main():
    for line in sys.stdin:
        for num, name in enumerate(line.split("\t")):
            print("{} [{}]".format(name.strip(), num))

main()

# next line is input line
This    is  a   test

# and the output for it ...
This [0]
is [1]
a [2]
test [3]
如果您想要持续编号,也可以使用此代码。在这里,您可以简单地使用
+
-运算符,它将在列表中显示您可能想要的内容

def main():
    olist = []
    for line in sys.stdin:
        olist += [name for name in line.split("\t")]
        for num, name in enumerate(olist):
            print("{} [{}]".format(name.strip(), num))

所使用的
.strip()
-方法很简单,因为sys.stdin还将捕获行分隔符。

您能展示一些所需输出的示例吗?既然嵌套中只有一项,为什么不简单地切换到
枚举(olist[0])
?我们不确定您希望从中得到什么样的输出,您忽略了提供适当的输入。添加了所需的输出Hanks,这正是我想要的
import sys

def main():
    for line in sys.stdin:
        for num, name in enumerate(line.split("\t")):
            print("{} [{}]".format(name.strip(), num))

main()

# next line is input line
This    is  a   test

# and the output for it ...
This [0]
is [1]
a [2]
test [3]
def main():
    olist = []
    for line in sys.stdin:
        olist += [name for name in line.split("\t")]
        for num, name in enumerate(olist):
            print("{} [{}]".format(name.strip(), num))