正如标题所示,我从两次拆分中得到了一个嵌套列表。
“” .join没有帮助解决此问题。 我也不知道如何在列表中打印单词的位置。
目标是在有效的Tab上拆分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', '@AfshinEllian1', ':', 'Kennelijk', 'vinden', 'ze', 'daar', 'aan', 'die', 'gezellige', 'tafel', 'normaal', 'dat', 'steltje', 'barbaren', 'onze', 'grondwettelijke', 'rechten', 'bedreigen', '.', 'Zouden', 'we', 'ook', 'voor', 'andere', 'buitenwettelijke', 'dreigingen', 'moeten', 'capituleren', '?', 'Wat', 'een', 'door', 'ons', 'gesubsidieerde', 'domheid', '!', '#laatop1', '#cartoonwedstrijd']]
输出打印(数字,名称):
0 ['RT', '@AfshinEllian1', ':', 'Kennelijk', 'vinden', 'ze', 'daar', 'aan', 'die', 'gezellige', 'tafel', 'normaal', 'dat', 'steltje', 'barbaren', 'onze', 'grondwettelijke', 'rechten', 'bedreigen', '.', 'Zouden', 'we', 'ook', 'voor', 'andere', 'buitenwettelijke', 'dreigingen', 'moeten', 'capituleren', '?', 'Wat', 'een', 'door', 'ons', 'gesubsidieerde', 'domheid', '!', '#laatop1', '#cartoonwedstrijd']
所需的输出=
RT [0]
@AfshinEllian1 [1]
: [2]
Kennelijk [3]
等
答案 0 :(得分:1)
如果我正确理解了您的问题,请执行以下操作:
olist.append(w.split())
没有做您想要的。您需要扩展列表:
olist.extend(w.split())
将两个列表合并在一起。
答案 1 :(得分:0)
无需将其拆分两次,只需通过以下方式直接打印即可:
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也会捕获行分隔符。