python集合和eval的使用

2022-02-06 05:30:37 字數 2190 閱讀 7416

python集合和eval的使用

建立集合

使用工廠方法 set()和 frozenset():

>>> s = set('cheeseshop')

>>> s

set(['c', 'e', 'h', 'o', 'p', 's'])

>>> t = frozenset('bookshop')

>>> t

frozenset(['b', 'h', 'k', 'o', 'p', 's'])

>>> type(s)

>>> type(t)

更新集合

用各種集合內建的方法和操作符新增和刪除集合的成員:

>>> s.add('z')

>>> s

set(['c', 'e', 'h', 'o', 'p', 's', 'z'])

>>> s.update('pypi')

>>> s

set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z'])

>>> s.remove('z')

>>> s

set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])

>>> s -= set('pypi')

>>> s

set(['c', 'e', 'h', 'o', 's'])

刪除集合

del set()
成員關係 (in, not in)

>>> s = set('cheeseshop')

>>> t = frozenset('bookshop')

>>> 'k' in s

false

>>> 'k' in t

true

>>> 'c' not in t

集合等價/不等價

>>> s == t

false

>>> s != t

true

>>> u = frozenset(s)

>>> s == u

true

>>> set('posh') == set('shop')

true

差補/相對補集( – )

兩個集合(s 和t)的差補或相對補集是指乙個集合c,該集合中的元素,只屬於集合s,而不屬於集合t。差符號有乙個等價的方法,difference().

>>> s - t

set(['c', 'e'])

對稱差分( ^ ):對稱差分是集合的xor

利用集合去除列表中的重複元素

>>> xs = [5, 8, 5, 1, 1, 4, 2, 4, 3, 2]

>>> set(xs)

set([1, 2, 3, 4, 5, 8])

>>> sorted(set(xs), key=xs.index) # 保持原來的順序

[5, 8, 1, 4, 2, 3]

eval函式的使用

1、計算字串中有效的表示式,並返回結果

>>> eval('pow(2,2)')

4>>> eval('2 + 2')

4>>> eval("81 + 4")

85

2、將字串轉成相應的物件(如list、tuple、dict和string之間的轉換)

Python中的exec和eval函式

函式exec將字串作為 執行 exec print hello,world hello,world 然而,呼叫函式exec時只給它提供乙個引數絕非好事。大多數情況下,還應向它傳遞乙個命名空間 用於放置變數的地方 否則 將汙染你的命名空間,即修改你的變數。例如,假設 使用了名稱sqrt,結果將如何呢?...

python 型別轉換和eval函式

基本資料型別 組合資料型別 1.將程式中的字典資料,轉換成字串儲存到檔案中 users 型別能直接轉換成字串 users str str users 儲存到檔案中 with open data 2.1.text w as file file.write users str 2.將檔案中的字串資料,讀...

python中eval的用法

eval 用於執行乙個字串的表示式,並返回表示式的值 eval expression,globals none,locals none 官方文件中的解釋是,將字串str當成有效的表示式來求值並返回計算結果。globals和locals引數是可選的,如果提供了globals引數,那麼它必須是dicti...