从python中的多值元素数组中打印特定值

时间:2017-06-24 02:48:33

标签: python arrays data-structures python-3.6

在python 3中,我试图创建一个key-value元素,其中每个元素由两个值组成。这些值实际上不是value对,因为它们彼此具有相同的相关性,这意味着key 1可能是value两个value,就像key一样两个可能是valuedictionary,因此我认为my_list = [ (VALUE1, OFFSET1), (VALUE2, OFFSET2) ] def printList(list): for item in list: print(item) 不合适。

VALUE

我如何单独收集OFFSET"values" theValue = list[0].VALUE theOffset = list[0].OFFSET ?如

array

我在考虑ProgressBar个结构?

6 个答案:

答案 0 :(得分:2)

您可以使用zip转换列表并将相同位置的元素收集到结果中的一个元素:

value, offset = zip(*my_list)

value
#('VALUE1', 'VALUE2')

offset
#('OFFSET1', 'OFFSET2')

答案 1 :(得分:1)

def printList(my_list):
    for item in my_list:
        print('Value ', item[0])
        print('Offset ', item[1])

for循环遍历my_list。循环中的每个元素都作为变量项中的(VALUE, OFFSET)元组接收。因此item[0]VALUEitem[1]OFFSET。我们打印出来。

答案 2 :(得分:0)

我会这样做:

my_list = [ ("VALUE1", "OFFSET1"), ("VALUE2", "OFFSET2") ]

def printList(my_llst):
  values = []
  ofts = []
  for item in my_llst:
      values.append(item[0])
      ofts.append(item[1])
  return (values,ofts)
  

(['VALUE1','VALUE2'],['OFFSET1','OFFSET2'])

答案 3 :(得分:0)

由于listtuples,而不是:

theValue  = list[0].VALUE
theOffset = list[0].OFFSET

您可以使用:

theValue = list[0][0]
theOffset = list[0][1]

所以在for-loop

def printList(list):
    for item in list:
        print('VALUE: {}'.format(item[0]))
        print('OFFSET: {}'.format(item[1]))

如果您希望获取list中的所有值和单独的list中的偏移量,则可以使用list-comprehension

values = [x[0] for x in list]
offsets = [x[1] for x in list]

更重要的是,避免使用built-inlist函数作为变量,而是使用其他内容。

答案 4 :(得分:0)

尝试使用list comprehension

theValue  = [value[0] for value in my_list] 
theOffset = [offset[0] for value in offset]

答案 5 :(得分:0)

我认为namedtuple可以帮到你。

from collections import namedtuple

Element = namedtuple("Element", ["value", "offset"])

element_list = []

for value, offset in my_list:

    element_list.append(Element(value, offset))

for element in element_list:

    print element.value, element.offset

如果您想分别获取所有值和偏移量,可以使用numpy将my_list转换为numpy.array这是一个二维数组。

import numpy as np

2d_array = np.array(my_list)

values = 2d_array[:, 0]
offsets = 2d_array[:, 1]