Python 2.7 尝试追加时,我收到attributeerror
我被以下几点困住了。我在追加时似乎做错了什么。我收到错误:“float”对象没有属性“append”。 我现在明白了,我要附加一个浮点值,这是不可能的。但是,例如,在第一个索引的每个列表中,如何获取数据排序列表的索引[0]的值,在第二个位置的每个列表中,如何获取数据排序列表中的索引1的值,在第三个位置,如何获取索引2处的数据排序列表的值。然后每个iPython 2.7 尝试追加时,我收到attributeerror,python-2.7,append,attributeerror,Python 2.7,Append,Attributeerror,我被以下几点困住了。我在追加时似乎做错了什么。我收到错误:“float”对象没有属性“append”。 我现在明白了,我要附加一个浮点值,这是不可能的。但是,例如,在第一个索引的每个列表中,如何获取数据排序列表的索引[0]的值,在第二个位置的每个列表中,如何获取数据排序列表中的索引1的值,在第三个位置,如何获取索引2处的数据排序列表的值。然后每个i TheorBlockNeighborsOne[i] = Data_BM_Sorted_List[i][0]
TheorBlockNeighborsOne[i] = Data_BM_Sorted_List[i][0]
TheorBlockNeighborsOne[i].append((Data_BM_Sorted_List[i][1]+Horizontal_Block_Dimensions))
TheorBlockNeighborsOne[i].append((Data_BM_Sorted_List[i][2]))
Horizontal_Block_Dimensions = int(raw_input())
水平块尺寸的原始输入为100
Data_BM_Sorted_List = [[336350.0, 7089650.0, -7.0, 0.1665, 1.5, 1], [336350.0, 7089650.0, -5.0, 0.1542, 1.5, 1], [336350.0, 7089650.0, -3.0, 0.2259, 1.5, 1], [336350.0, 7089650.0, -1.0, 0.2753, 1.5, 1], [336350.0, 7089650.0, 1.0, 0.2236, 1.5, 1], [336450.0, 7089550.0, -7.0, 0.1791, 1.5, 2], [336450.0, 7089550.0, -5.0, 0.1707, 1.5, 2], [336450.0, 7089550.0, -3.0, 0.2248, 1.5, 2], [336450.0, 7089550.0, -1.0, 0.2791, 1.5, 2], [336450.0, 7089550.0, 1.0, 0.3098, 1.5, 2], [336450.0, 7089650.0, -5.0, 0.1488, 1.5, 3], [336450.0, 7089650.0, -3.0, 0.1961, 1.5, 3], [336450.0, 7089650.0, -1.0, 0.2499, 1.5, 3], [336450.0, 7089650.0, 1.0, 0.2939, 1.5, 3], [336550.0, 7089350.0, -7.0, 0.1774, 1.5, 4], [336550.0, 7089350.0, -5.0, 0.2551, 1.5, 4], [336550.0, 7089350.0, -3.0, 0.3489, 1.5, 4], [336550.0, 7089350.0, -1.0, 0.3707, 1.5, 4], [336550.0, 7089350.0, 1.0, 0.3037, 1.5, 4], [336550.0, 7089450.0, -5.0, 0.1719, 1.5, 5], [336550.0, 7089450.0, -3.0, 0.3121, 1.5, 5], [336550.0, 7089450.0, -1.0, 0.3491, 1.5, 5], [336550.0, 7089450.0, 1.0, 0.326, 1.5, 5], [336550.0, 7089550.0, -7.0, 0.1494, 1.5, 6], [336550.0, 7089550.0, -5.0, 0.1598, 1.5, 6], [336550.0, 7089550.0, -3.0, 0.2061, 1.5, 6], [336550.0, 7089550.0, -1.0, 0.2554, 1.5, 6], [336550.0, 7089550.0, 1.0, 0.3218, 1.5, 6], [336550.0, 7089650.0, -5.0, 0.1334, 1.5, 7], [336550.0, 7089650.0, -3.0, 0.1711, 1.5, 7], [336550.0, 7089650.0, -1.0, 0.193, 1.5, 7], [336550.0, 7089650.0, 1.0, 0.2498, 1.5, 7], [336650.0, 7089150.0, -9.0, 0.165, 1.5, 8], [336650.0, 7089150.0, -7.0, 0.1791, 1.5, 8], [336650.0, 7089150.0, -5.0, 0.2482, 1.5, 8], [336650.0, 7089150.0, -3.0, 0.3541, 1.5, 8]]
TheorBlockNeighborsOne = [[]]*len(Data_BM_Sorted_List)
TheorBlockNeighborsTwo = [[]]*len(Data_BM_Sorted_List)
TheorBlockNeighborsThree = [[]]*len(Data_BM_Sorted_List)
TheorBlockNeighborsFour = [[]]*len(Data_BM_Sorted_List)
TheorBlockNeighborsFive = [[]]*len(Data_BM_Sorted_List)
TheorBlockNeighborsSix = [[]]*len(Data_BM_Sorted_List)
TheorBlockNeighborsSeven = [[]]*len(Data_BM_Sorted_List)
TheorBlockNeighborsEight = [[]]*len(Data_BM_Sorted_List)
# BlockNeighborsX = [[X,Y,Z]]
for i in range(0,len(TheorBlockNeighborsOne)):
TheorBlockNeighborsOne[i] = Data_BM_Sorted_List[i][0]
TheorBlockNeighborsOne[i].append((Data_BM_Sorted_List[i][1]+Horizontal_Block_Dimensions))
TheorBlockNeighborsOne[i].append((Data_BM_Sorted_List[i][2]))
TheorBlockNeighborsTwo[i] = Data_BM_Sorted_List[i][0] + Horizontal_Block_Dimensions
TheorBlockNeighborsTwo[i].append(Data_BM_Sorted_List[i][1])
TheorBlockNeighborsTwo[i].append(Data_BM_Sorted_List[i][2])
TheorBlockNeighborsThree[i] = Data_BM_Sorted_List[i][0]
TheorBlockNeighborsThree[i].append(Data_BM_Sorted_List[i][1] - Horizontal_Block_Dimensions)
TheorBlockNeighborsThree[i].append(Data_BM_Sorted_List[i][2])
TheorBlockNeighborsFour[i] = Data_BM_Sorted_List[i][0] - Horizontal_Block_Dimensions
TheorBlockNeighborsFour[i].append(Data_BM_Sorted_List[i][1])
TheorBlockNeighborsFour[i].append(Data_BM_Sorted_List[i][2])
TheorBlockNeighborsFive[i] = Data_BM_Sorted_List[i][0] - Horizontal_Block_Dimensions
TheorBlockNeighborsFive[i].append(Data_BM_Sorted_List[i][1] + Horizontal_Block_Dimensions)
TheorBlockNeighborsFive[i].append(Data_BM_Sorted_List[i][2])
TheorBlockNeighborsSix[i] = Data_BM_Sorted_List[i][0] + Horizontal_Block_Dimensions
TheorBlockNeighborsSix[i].append(Data_BM_Sorted_List[i][1] + Horizontal_Block_Dimensions)
TheorBlockNeighborsSix[i].append(Data_BM_Sorted_List[i][2])
TheorBlockNeighborsSeven[i] = Data_BM_Sorted_List[i][0] + Horizontal_Block_Dimensions
TheorBlockNeighborsSeven[i].append(Data_BM_Sorted_List[i][1] - Horizontal_Block_Dimensions)
TheorBlockNeighborsSeven[i].append(Data_BM_Sorted_List[i][2])
TheorBlockNeighborsEight[i] = Data_BM_Sorted_List[i][0] - Horizontal_Block_Dimensions
TheorBlockNeighborsEight[i].append(Data_BM_Sorted_List[i][1] - Horizontal_Block_Dimensions)
TheorBlockNeighborsEight[i].append(Data_BM_Sorted_List[i][2])
print TheorBlockNeighborsOne
我得到的错误是:
AttributeError Traceback (most recent call last)
<ipython-input-46-a2f61fb09e5b> in <module>()
12 for i in range(0,len(TheorBlockNeighborsOne)):
13 TheorBlockNeighborsOne[i] = Data_BM_Sorted_List[i][0]
---> 14 TheorBlockNeighborsOne[i].append((Data_BM_Sorted_List[i][1]+Horizontal_Block_Dimensions))
15 TheorBlockNeighborsOne[i].append((Data_BM_Sorted_List[i][2]))
16 TheorBlockNeighborsTwo[i] = Data_BM_Sorted_List[i][0] + Horizontal_Block_Dimensions
AttributeError: 'float' object has no attribute 'append'
AttributeError回溯(最近一次调用)
在()
12表示范围内的i(0,len(1)):
13.区块邻居单[i]=数据列表[i][0]
--->14.区块邻接单[i]。追加((数据\u BM\u排序\u列表[i][1]+水平\u区块\u维度))
15.邻域单[i].追加((数据已排序单[i][2]))
16块邻域两个[i]=数据块排序列表[i][0]+水平块维度
AttributeError:“float”对象没有属性“append”
为列表索引分配一个浮点值,然后尝试对该浮点值调用.append()
:
TheorBlockNeighborsOne[i] = Data_BM_Sorted_List[i][0]
TheorBlockNeighborsOne[i].append((Data_BM_Sorted_List[i][1]+Horizontal_Block_Dimensions))
这里,Data\u BM\u Sorted\u List[i]
是Data\u BM\u Sorted\u List
中的一个嵌套列表,而[0]
是该列表中的第一个值,它始终是一个浮点值:
Data_BM_Sorted_List = [[336350.0, 7089650.0, -7.0, 0.1665, 1.5, 1], [336350.0, 7089650.0, -5.0, 0.1542, 1.5, 1], [336350.0, 7089650.0, -3.0, 0.2259, 1.5, 1], [336350.0, 7089650.0, -1.0, 0.2753, 1.5, 1], [336350.0, 7089650.0, 1.0, 0.2236, 1.5, 1], [336450.0, 7089550.0, -7.0, 0.1791, 1.5, 2], [336450.0, 7089550.0, -5.0, 0.1707, 1.5, 2], [336450.0, 7089550.0, -3.0, 0.2248, 1.5, 2], [336450.0, 7089550.0, -1.0, 0.2791, 1.5, 2], [336450.0, 7089550.0, 1.0, 0.3098, 1.5, 2], [336450.0, 7089650.0, -5.0, 0.1488, 1.5, 3], [336450.0, 7089650.0, -3.0, 0.1961, 1.5, 3], [336450.0, 7089650.0, -1.0, 0.2499, 1.5, 3], [336450.0, 7089650.0, 1.0, 0.2939, 1.5, 3], [336550.0, 7089350.0, -7.0, 0.1774, 1.5, 4], [336550.0, 7089350.0, -5.0, 0.2551, 1.5, 4], [336550.0, 7089350.0, -3.0, 0.3489, 1.5, 4], [336550.0, 7089350.0, -1.0, 0.3707, 1.5, 4], [336550.0, 7089350.0, 1.0, 0.3037, 1.5, 4], [336550.0, 7089450.0, -5.0, 0.1719, 1.5, 5], [336550.0, 7089450.0, -3.0, 0.3121, 1.5, 5], [336550.0, 7089450.0, -1.0, 0.3491, 1.5, 5], [336550.0, 7089450.0, 1.0, 0.326, 1.5, 5], [336550.0, 7089550.0, -7.0, 0.1494, 1.5, 6], [336550.0, 7089550.0, -5.0, 0.1598, 1.5, 6], [336550.0, 7089550.0, -3.0, 0.2061, 1.5, 6], [336550.0, 7089550.0, -1.0, 0.2554, 1.5, 6], [336550.0, 7089550.0, 1.0, 0.3218, 1.5, 6], [336550.0, 7089650.0, -5.0, 0.1334, 1.5, 7], [336550.0, 7089650.0, -3.0, 0.1711, 1.5, 7], [336550.0, 7089650.0, -1.0, 0.193, 1.5, 7], [336550.0, 7089650.0, 1.0, 0.2498, 1.5, 7], [336650.0, 7089150.0, -9.0, 0.165, 1.5, 8], [336650.0, 7089150.0, -7.0, 0.1791, 1.5, 8], [336650.0, 7089150.0, -5.0, 0.2482, 1.5, 8], [336650.0, 7089150.0, -3.0, 0.3541, 1.5, 8]]
请注意,您创建矩阵的方法有缺陷,您正落入中描述的列表乘法陷阱;列表的乘法不会创建新对象;相反,只有参考文献,内容才会重复。因此,TheorBlockNeightorSone[0]
将是与TheorBlockNeightorSone[1]
等完全相同的列表对象。在一个索引中向嵌套列表添加一个值,您将看到在所有其他引用中重复相同的值
若您想使该浮点值成为每个列表的一部分,您也需要附加它;赋值替换列表对象
接下来,您的代码会重复多次。不要创建8个命名列表,而是使用字典或列表来包含它们。您可以这样做:
theor_block_neighbors = [
[[] for _ in range(len(Data_BM_Sorted_List))]
for _ in range(8)]
这将创建一个包含8个矩阵的列表,然后您可以在循环中对其进行寻址。您的代码非常重复,创建嵌套列表的方式意味着内部列表都是相同的引用。好的,这很有意义。谢谢,但是我怎样才能把那个浮点数放到我想要的地方呢?@AlmostGr:我不知道。你没有给我们任何预期的产出。您希望您的代码做什么呢?不要在评论中告诉我,编辑你的问题。