我尝试获取一个字段名数组,将它们复制到一个新数组中,然后根据它们与原始数组中的字段名的相似性向新数组添加其他字段名。 这将允许我以两种不同的方式在表中运行光标。。。第一个获取要显示的文本的字符长度,第二个获取文本,并将格式信息附加到文本的开头和结尾。你知道吗
“PointData”表有以下字段名“PrimeKey”、“Label”、“Field1”、“Field2”、“Field3”、“fb\u Field1”、“fp\u Field1”,格式信息保存在fb\u和fp\u字段中。你知道吗
fields = ['PrimeKey', 'Label', 'Field1', 'Field2', 'Field3']
table = "PointData"
AllFields = fields
for field in fields:
bfldnm = 'fb_' + field
pfldnm = 'fp_' + field
bfld = arcpy.ListFields(table, bfldnm)
pfld = arcpy.ListFields(table, pfldnm)
if bfld:
AllFields.append(bfld[0].name)
bfld = []
if pfld:
AllFields.append(pfld[0].name)
pfld = []
在运行这个for循环之后,得到的fields数组以另外两个字段名('fb\u Field1'和'fp\u Field1')结束。。。我不明白为什么。。。我只想将这两个值添加到AllFields数组中。你知道吗
谢谢njzk2
@njzk2已经提到了这一点,但是我想我会添加一个解释这个基本原理的答案。Python通过pass-by-object-reference做任何事情。简单地说,这意味着当你完成任务时:
你不是在复制。有几种方法可以在python中进行复制,最简单的方法是通过切片技术:
其他的在python的copy文档中有详细说明。例如:
而且python传统上使用snake case,所以
AllFields
应该是all_fields
相关问题 更多 >
编程相关推荐