使用值获取元素列表

时间:2016-01-03 22:34:15

标签: python python-2.7

我的代码需要一些帮助,当我使用value的索引从数组中获取每个元素时,我无法找到如何获得我想要的元素。

以下是prog_id的输出:

22:24:21 T:2192  NOTICE: 3046
22:24:21 T:2192  NOTICE: 3174
22:24:21 T:2192  NOTICE: 3302
22:24:21 T:2192  NOTICE: 3430
22:24:21 T:2192  NOTICE: 3558
22:24:21 T:2192  NOTICE: 3686
22:24:21 T:2192  NOTICE: 3814

以下是您可以从数组中获取的每个元素的值:

>>>> 0 22:24:21 T:2192  NOTICE: 3046
>>>> 1 22:24:21 T:2192  NOTICE: 3174
>>>> 2 22:24:21 T:2192  NOTICE: 3302
>>>> 3 22:24:21 T:2192  NOTICE: 3430
>>>> 4 22:24:21 T:2192  NOTICE: 3558
>>>> 5 22:24:21 T:2192  NOTICE: 3686
>>>> 6 22:24:21 T:2192  NOTICE: 3814

以下是prog_index的输出值:

22:24:21 T:2192  NOTICE: 1
22:24:21 T:2192  NOTICE: 3
22:24:21 T:2192  NOTICE: 5
22:24:21 T:2192  NOTICE: 6

这是我想要实现的目标:

22:24:21 T:2192  NOTICE: 3174
22:24:21 T:2192  NOTICE: 3430
22:24:21 T:2192  NOTICE: 3686
22:24:21 T:2192  NOTICE: 3814

以下是代码:

program_index_ = list()

if current_program_length >= 30:
    program_index = self.program_index
program_index_.append(program_index)

program_button = [elem.control for elem in self.program_buttons]
progId = list()
posX = list()
posY = list()

for elem in program_button:
    progId.append(elem.getId())
    posX.append(elem.getX())
    posY.append(elem.getY())
progId = map(str, progId)
posX = map(str, posX)
posY = map(str, posY)


for pos_X, pos_Y, prog_id, prog_index in izip_longest(posX, posY, progId, program_index_, fillvalue=''):
    if int(pos_X) == 375:
       print prog_id

我试过这个:

prog_index = prog_id[test_index]
print prog_index

它给我一个错误:TypeError:字符串索引必须是整数,而不是str

我想我做错了。

您能否告诉我如何使用变量prog_idprog_index获取值,以便我可以使用值来搜索数组中的每个元素?

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题。听起来你知道你试图从列表中获取的元素的索引,并且你想要基于索引1,3,5,6的每个元素的输出。如果是这样,这段代码应该适合你:< / p>

data = ['22:24:21 T:2192  NOTICE: 3046',
'22:24:21 T:2192  NOTICE: 3174',
'22:24:21 T:2192  NOTICE: 3302',
'22:24:21 T:2192  NOTICE: 3430',
'22:24:21 T:2192  NOTICE: 3558',
'22:24:21 T:2192  NOTICE: 3686',
'22:24:21 T:2192  NOTICE: 3814']

index_get = [1,3,5,6]
data2 = [data[i] for i in index_get]
print (data2)

输出:

['22:24:21 T:2192  NOTICE: 3174', '22:24:21 T:2192  NOTICE: 3430', '22:24:21 T:2192  NOTICE: 3686', '22:24:21 T:2192  NOTICE: 3814']