python添加幾何屬性(python 給類添加屬性)

  • 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/zh-hk/n/126896.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論