在python中复制部分列表

时间:2016-08-12 19:12:45

标签: python list

我正在尝试从系统命令中收集输出,该命令列出了由新行分隔的票证(字符串)。我指定'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)]

3 个答案:

答案 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)

liallTickets中的值(我猜是String)。你传递的是获得价值allTickets[ii]。数组/列表索引始终是整数。

我认为你正在寻找类似的东西:

for index, val in .........
      if lastTicket in allTickets[index]: