我有一个列表,其中只有一个元素为:
tempeqpos2 = [600]
其坐标存储在名为points3
的列表中,如下所示:
points3 = [(1795,3866)]
现在,我正尝试将此坐标附加到名为originalval2
的列表中,如下所示:
originalval2=[]
for att in tempeqpos2:
originalval2.append(list(points3[att]))
但这给了我IndexError:
list index out of range
。您能在这里解决问题吗?
由于每个tempeqpos2
和points3
只有一个元素,因此我尝试通过给originalval2
来制作originalval2=points3
。但这不起作用...
答案 0 :(得分:6)
您的问题是当您尝试访问 points3 [att] 时。
因为 att 解析为整数 600 ,所以您实际上只要求 points3 [0]时要求 points3 [600] ] 存在。
答案 1 :(得分:1)
我会尽力向您解释最清楚
tempeqpos2 = [600]
points3 = [(1795,3866)]
originalval2=[]
for att in tempeqpos2: #see that "att" value for the first iteration is 600
originalval2.append(list(points3[att])) #and here you are asking for the "att"=600 element of the list "points3" that only have 1 element that is (1795,3866)
# and how you know is imposible ask for the element 600 if your list only have 1 element
答案 2 :(得分:1)
您的att
被分配给tempeqpos2
的每一项,这是一个整数列表,在这种情况下,它只是600
,因此当计算points3[att]
时,它会尝试访问600
列表中的索引points3
,该索引不存在,因为points3
只有一项。
由于points3
中的项目与tempeqpos2
中的项目相对应,因此建议将它们作为字典加入:
originalval2 = {}
for i, att in enumerate(tempeqpos2):
originalval2[att] = points3[i]
答案 3 :(得分:1)
在tempeqpos2中的att之后调用point3 [att]时,att等于600。调用point3 [att]就是在列表point3中调用位置600。
答案 4 :(得分:1)
您可以使用index
来获取所需obj的位置。
示例:
points3 = [(1795,3866)]
tempeqpos2 = [600]
originalval2=[]
for att in tempeqpos2:
originalval2.append(list(points3.index(att))
originalval2
将包含(1795,3866)
或使用字典:
points3 = [(1795,3866)]
tempeqpos2 = [600]
originalval2={}
for att in tempeqpos2:
originalval2.append(dict(points3.index(att : tempeqpos2.index(att)))
originalval2
将包含600 : (1795,3866)
答案 5 :(得分:0)
最初,您尝试做的是尝试访问第600个位置的元素,而列表中只有一个元素。您需要访问第一个位置上的元素。
tempeqpos2 = [600]
points3 = [(1795,3866)]
originalval2=[]
for att in tempeqpos2:
originalval2 = points3[0]
print(originalval2)
答案 6 :(得分:0)
使用字典可能更有意义:
tempeqpos2 = [600]
points3 = [(1795,3866)]
originalval2 = {}
for index, att in enumerate(tempeqpos2):
originalval2[att] = points3[index]
print(originalval2)
运行时:
>>> tempeqpos2 = [600]
>>> points3 = [(1795,3866)]
>>>
>>> originalval2 = {}
>>> for index, att in enumerate(tempeqpos2):
... originalval2[att] = points3[index]
...
>>> print(originalval2)
{600: (1795, 3866)}
>>>