我正在尝试从系统命令中收集输出,该命令列出了由新行分隔的票证(字符串)。我指定'lastTicket'是什么,我想复制完整列表,直到我到达lastTicket。我收到以下错误,“TypeError:list indices必须是整数,而不是str”在下面的第5行。如何只复制我需要的列表部分?感谢。
output = subprocess.check_output(cmd, shell=True)
allTickets = output.rstrip().split('\n')
idx = len(allTickets)
for ii in allTickets:
if lastTicket in allTickets[ii]:
idx = ii
break
print idx
tickets = allTickets[idx:len(allTickets)]
答案 0 :(得分:1)
使用
for ii in range(len(allTickets)):
if lastTicket in allTickets[ii]:
idx = ii
break
你确定要BTY if lastTicket in allTickets[ii]:
而不是if lastTicket == allTickets[ii]:
吗?
答案 1 :(得分:0)
使用enumerate
获取索引:
for idx, ticket in enumerate(allTickets):
if lastTicket in ticket:
break
print idx
tickets = allTickets[idx:]
答案 2 :(得分:-1)
li
是allTickets
中的值(我猜是String)。你传递的是获得价值allTickets[ii]
。数组/列表索引始终是整数。
我认为你正在寻找类似的东西:
for index, val in .........
if lastTicket in allTickets[index]: