在python 3中,我试图创建一个key-value
元素,其中每个元素由两个值组成。这些值实际上不是value
对,因为它们彼此具有相同的相关性,这意味着key
1可能是value
两个value
,就像key
一样两个可能是value
到dictionary
,因此我认为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
个结构?
答案 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]
为VALUE
而item[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)
由于list
为tuples
,而不是:
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-in
等list
函数作为变量,而是使用其他内容。
答案 4 :(得分:0)
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]