- 1、为什么python中基本类型如 str int 的对象不能动态添加属性?
- 2、arcgis9.3怎么使用python
- 3、python如何向数组中添加元素
- 4、python中如何在set中添加元素?语句是什么
- 5、Python基础实战之集合元素的添加和删除
比较简单的方式是把str和int理解为“原始数据类型”,其结构是不可以修改的。理由是,str和int是python中提供的标准数据类型,大家已经对这种数据类型的性质和用法有了普遍的共识和预定。如果硬要自己进行修改或者加上一些自定义的属性,就很容易破坏这种“共识”,进而导致程序可读性下降,甚至引入潜在的bug。
如果需要动态添加属性,就自己去定义一个专门的class,并在注释中写清楚该class可能会具有的属性,这样就显得很清楚。
Python 表达式可通过 几何对象中的属性(type、extent、centroid、firstPoint、lastPoint、area、length、isMultipart 和 partCount)进行创建。
!shape.area!
Python 表达式可以使用具有面积或线性单位的几何 area 和 length 属性将值转换为不同的测量单位(例如 !shape.length@kilometers!)。如果数据存储在地理坐标系中且具有线性单位(例如英里),则使用测地线算法计算长度。在地理数据中使用面积单位会产生不正确的结果,这是由于沿 globe 的十进制度并不一致。
面积测量单位关键字:
英亩 | 公亩 | 公顷 | 平方厘米 | 平方分米 | 平方英寸 | 平方英尺 | 平方千米 | 平方米 | 平方英里 | 平方毫米 | 平方码 | 平方地图单位 | 未知
线性测量单位关键字:
厘米 | 十进制度 | 分米 | 英尺 | 英寸 | 千米 | 米 | 英里 | 毫米 | 海里 | 磅 | 未知 | 码
在工具对话框中,可将表达式直接输入到表达式参数中,或者使用“字段计算器”以交互方式构建表达式。
使用所选要素集(如从创建要素图层或按属性选择图层内的查询中创建的要素集)时,此工具将只更新所选的记录。
每次操作仅能对一个字段应用计算。
现有字段值将被覆盖。如果想要保留原始字段值,应创建输入表副本
对于 Python 计算,必须在字段名称两旁添加惊叹号(!字段名!)。
对于 VB 计算,字段名称必须用方括号括起([字段名])。
计算文本或字符字段的字符串时,在对话框中,必须对字符串添加双引号(”字符串”),而在脚本中,还必须对加双引号的字符串添加单引号('”字符串”‘)。
此工具也可用于更新字符项。应对使用字符串的表达式添加单引号(例如 [CHARITEM] = ‘新字符串’)。但是,如果字符串已包含单引号,则要对该字符串添加双引号,例如 [CHARITEM] = “类型’A'”。
要计算数值字段,可在表达式参数中输入数值;值的两旁无需加引号。
如果已指定 Python 表达式,则此工具支持 arcgis.rand() 函数。已为 ArcGIS 工具创建 arcgis.rand() 函数,不应将此函数与 Python Rand() 函数相混淆。arcgis.rand() 函数的可用分布的语法在随机值的分布语法中进行介绍。
表达式与代码块会相互连接。代码块必须返回与表达式的关联;代码块的结果应传入到表达式中。
代码块参数可用于创建复杂表达式。您可以在对话框中直接输入代码块,或在脚本中将代码块作为连续字符串输入。
Python 数学模块及格式可供代码块参数使用。您可以导入附加模块。数学模块可提供数论函数与表达函数、幂函数与对数函数、三角函数、角度转换函数、双曲函数以及数学常数。要了解更多有关数学模块的内容,请参阅 Python 的帮助。
保存的 ArcGIS 先前版本的 VB .cal 文件可以直接使用或者只需做少量修改后即可使用。如果拥有使用 ArcObjects 的过去版本的 VBA 代码,则计算需经过修改后才能用于 10.0。
计算连接数据时,您无法直接计算连接列。然而,您可以直接计算源表的列。要计算连接数据,必须先将连接表或连接图层添加至 ArcMap。然后可以分别对此数据执行计算。这些更改将反映在连接列中。
计算字段示例
首先进入python的编辑器界面!
写上这个程序的一个注释内容!
相关推荐:《Python视频教程》
新建一个students变量,用来存储学生的名字!
然后就是通过append函数在数组中插入一个元素!
最后将这个数组打印出来!
选择运行命令“run”-“run”。
最后运行程序,发现新的元素已经成功插入了!
以上就是小编分享的关于python如何向数组中添加元素的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.
sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作。
下面来点简单的小例子说明把。
x = set(‘spam’)
y = set([‘h’,’a’,’m’])
x, y
(set([‘a’, ‘p’, ‘s’, ‘m’]), set([‘a’, ‘h’, ‘m’]))
再来些小应用。
x y # 交集
set([‘a’, ‘m’])
x | y # 并集
set([‘a’, ‘p’, ‘s’, ‘h’, ‘m’])
x – y # 差集
set([‘p’, ‘s’])
记得以前个网友提问怎么去除海量列表里重复元素,用hash来解决也行,只不过感觉在性能上不是很高,用set解决还是很不错的,示例如下:
a = [11,22,33,44,11,22]
b = set(a)
b
set([33, 11, 44, 22])
c = [i for i in b]
c
[33, 11, 44, 22]
很酷把,几行就可以搞定。
1.8 集合
集合用于包含一组无序的对象。要创建集合,可使用set()函数并像下面这样提供一系列的项:
s = set([3,5,9,10]) #创建一个数值集合
t = set(“Hello”) #创建一个唯一字符的集合
与列表和元组不同,集合是无序的,也无法通过数字进行索引。此外,集合中的元素不能重复。例如,如果检查前面代码中t集合的值,结果会是:
t
set([‘H’, ‘e’, ‘l’, ‘o’])
注意只出现了一个’l’。
集合支持一系列标准操作,包括并集、交集、差集和对称差集,例如:
a = t | s # t 和 s的并集
b = t s # t 和 s的交集
c = t – s # 求差集(项在t中,但不在s中)
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)
基本操作:
t.add(‘x’) # 添加一项
s.update([10,37,42]) # 在s中添加多项
使用remove()可以删除一项:
t.remove(‘H’)
len(s)
set 的长度
x in s
测试 x 是否是 s 的成员
x not in s
测试 x 是否不是 s 的成员
s.issubset(t)
s = t
测试是否 s 中的每一个元素都在 t 中
s.issuperset(t)
s = t
测试是否 t 中的每一个元素都在 s 中
s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素
s.intersection(t)
s t
返回一个新的 set 包含 s 和 t 中的公共元素
s.difference(t)
s – t
返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素
s.copy()
返回 set “s”的一个浅复制
请注意:union(), intersection(), difference() 和 symmetric_difference() 的非运算符(non-operator,就是形如 s.union()这样的)版本将会接受任何 iterable 作为参数。相反,它们的运算符版本(operator based counterparts)要求参数必须是 sets。这样可以避免潜在的错误,如:为了更可读而使用 set(‘abc’) ‘cbs’ 来替代 set(‘abc’).intersection(‘cbs’)。从 2.3.1 版本中做的更改:以前所有参数都必须是 sets。
另外,Set 和 ImmutableSet 两者都支持 set 与 set 之间的比较。两个 sets 在也只有在这种情况下是相等的:每一个 set 中的元素都是另一个中的元素(二者互为subset)。
集合元素的添加操作有两种方法:
1、调用add()方法,一次添加一个元素
2、调用update()方法,至少添加一个元素
——————————
s={10,20,40,80}
s.add(30) #一次添加一个元素
print(s) #{10,30,20,40,80}
s.updae({200,300,400}) #一次至少添加一个元素
print(s) #{200,10,300,20,400,30,80,40}
s.update([800,900]) #可以添加列表
s.update((45,55)) #可以添加元组
print(s) #{200,5510,45,300,800,20,900,400,30,80,40}
——————————
集合元素的删除操作
1、调用remove()方法,一次删除一个指定元素,如果指定的元素不存在抛出KeyError
2、调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛异常
3、调用pop()方法,一次只删除一个任意元素
4、调用clear()方法,清空集合
——————————
s.remove(200) #一次删除一个指定元素,如果指定的元素不存在抛出KeyError
print(s) #{55,10,45,300,800,20,900,400,30,80,40}
s.discard(900) #一次删除一个指定元素,如果指定的元素不存在不抛异常
print(s) #{55,10,45,300,800,20,400,30,80,40}
s.pop() #删除谁不知道,任意一个元素
print(s) #{55,10,45,800,20,400,30,80,40}
s.clear() #清空集合中的所有元素
print(s) #set()
原创文章,作者:简单一点,如若转载,请注明出处:https://www.506064.com/n/126896.html