本文目錄一覽:
- 1、python基礎-列表 元組 集合 字典區別和用法
- 2、python–set(集合)
- 3、python 列表,元組,字典,集合,字元串相互轉換
- 4、python數據類型(集合)
- 5、python里集合無序,為什麼列表進行升序排列後不能直接轉化成集合?就因為集合是無序的嗎?
python基礎-列表 元組 集合 字典區別和用法
Python中有六個標準的數據類型:Number(數字),String(字元串),List(列表),Tuple(元組),Set(集合),Dictionary(字典)。其中:Number(數字)、String(字元串)、Tuple(元組)是不可變數據,其餘三種是可變數據。
轉義字元
輸出結果
布爾值
布爾值是一個邏輯值,只有真(True)和假(False)
輸出結果
Python數據結構包括列表(list)、元組(tuple)、集合(set)、字典(dict)等,這裡主要講解列表,列表有兩個特點:
輸出結果
修改表中元素
輸出結果
列表中插入元素
輸出結果
輸出列表中的元素
輸出結果
元素是否在列表元素中及統計個數
輸出結果
查找某個元素在列表中的位置
輸出結果
順序結構
輸出結果
if 條件 1
輸出結果
if 條件 2
輸出結果
循環結構
輸出結果
循環語句求和
輸出結果
可重複,類型可不同。 類型不同也是跟數組最本質的區別。 python里的列表用「[]」表示:
對比a和b的結果
列表的 — 增 — 刪 — 改 — 查
循環輸出列表內容,在結尾添加指定的內容
字元串是 Python 中最常用的數據類型。 我們可以使用引號(‘或”)來創建字元串。
元組與列表相似,不一樣之處在於 元組的元素不能修改。
元組使用小括弧,列表使用方括弧。
元組建立很簡單,只須要在括弧中添加元素,並使用逗號隔開便可。
字典是另外一種可變容器模型,且可存儲任意類型對象。
字典的每一個鍵值(key=value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括弧({})中 ,格式以下所示:
d = {key1 : value1, key2 : value2 }
字典函數
集合(set)是一個 無序的不重複元素序列。
可使用大括弧 { } 或者 set() 函數建立集合,注意:建立一個空集合必須用 set() 而不是 { },由於 { } 是用來建立一個空字典。
它的主要做用以下: 1.去重,把一個列表變成集合,就自動去重了 。2.關係測試,測試兩組數據以前的交集、差集、並集等關係。
關係測試
輸出結果
元素的添加和刪除
python–set(集合)
一、創建集合
創建非空集合:集合中set括弧中需要的參數的數據類型有:序列(包括字元串、列表、元組),字典可以轉為集合,注意數值類型不能作為集合的參數,如int類型。
二、添加元素
add() 方法是將要添加的元素作為一個整體添加到集合中
update() 方法是把要傳入的元素拆分成單個字元,存於集合中,並去掉重複的
三、刪除元素
集合的刪除操作使用的方法跟列表是一樣的,使用的也是 remove 方法,只能單個刪除
四、遍歷集合
五、集合與字元串、列表、元組互轉,集合轉字典
六、查找元素並刪除
函數原型: a.discard(b)
參數說明:a為一個set類型的變數;b表示要查找並刪除的元素
函數作用:在集合setVar中查找element元素,如果存在則刪除;如果沒找到,則什麼也不做。該函數沒有返回值
七、pop用法
函數原型: set1.pop() 刪除並返回集合set1中的第一個元素,如果為空引發KeyError錯誤+
八、clear、copy和len的用法
clear 方法用於清空集合中的所有元素
copy 方法用於集合拷貝
len 跟求序列的長度的函數len()是一樣的,返回的是集合中有多少個元素
九、求集合的交集、並集、差集和difference的用法
求集合的 交集 使用的符號是 「」
求集合的 並集 用的是符號 「|」
求集合的 差集 使用的符號是減號 「-」
difference 等價於集合的差集 ,查看兩個集合的不同之處。這種不同指的是集合s1相對於集合s2,不同的地方,也就是所有在集合s1中,而不再集合s2中的的元素組成的新集合
十、運算符判斷集合間關係和issuperset、issubset的用法
集合可以使用大於()、小於()、大於等於(=)、小於等於(=)、等於(==)、不等於(!=)來判斷某個集合是否完全包含於另一個集合,也可以使用子父集判斷函數。
issuperset 集合st1是否是集合st2的父集
issubset 集合st1是否是集合st2的子集
十一、不可變集合frozenset的用法
frozenset 該集合中的內容是不可改變的,其他功能及操作跟可變集合set一樣
python 列表,元組,字典,集合,字元串相互轉換
li = [1, 2, 3]
t = tuple(li)
print(t, type(t))
del list #先清除list緩存
tu = (1, 2, 3)
li = list(tu)
print(li, type(li))
li = [‘人’, ‘生’, ‘苦’, ‘短’]
str1 = ”.join(li)
print(str1, type(str1))
str2 = ‘hello python’
li1 = str2.split(‘ ‘)
print(li1, type(li1))
list1 = [‘name’, ‘age’, ‘sex’]
list2 = [‘張三’, 18, ‘男’]
dict = {}
for i in range(len(list1)):
dict[list1[i]] = list2[i]
print(dict, type(dict))
del dict#清除緩存
list1 = [‘name’, ‘age’, ‘sex’]
list2 = [‘張三’, 18, ‘男’]
d = dict(zip(list1, list2))
print(d)
dict = {‘name’: ‘張三’, ‘age’: 18, ‘sex’: ‘男’}
keys = list(dict.keys())
values = list(dict.values())
print(keys, type(keys))
print(values, type(values))
list3 = [[‘key1′,’value1’],[‘key2′,’value2’],[‘key3′,’value3’]]
print(dict(list3))
list1 = [1, 3, 4, 3, 2, 1]
s1 = set(list1)
print(s1, type(s1))
list1 = [1, 3, 4, 3, 2, 1]
s1 = set(list1)
list2 = list(s1.intersection(s1))
print(list2, type(list2))
list = []
a = ‘人生苦短’
list.append(a)
print(list)
b = tuple(list)
print(b, type(b))
dict = {‘name’: ‘xiaoming’, ‘age’: 18}
tup = tuple(dict)
print(tup) # 只轉換了key
tup2 = tuple(dict.values())
print(tup2)
dic1 = {‘a’: 1, ‘b’: 2}
str1 = str(dic1)
dic2 = eval(“{‘name’:’xiaoming’, ‘age’:18}”)
print(dic2, type(dic2))
str1 = ‘hello’
s1 = set(str1)
print(s1, type(s1))
dic1 = {‘a’: 1, ‘b’: 2, ‘c’: 3}
dic2 = {value: key for key, value in dic1.items()}
print(dic2)
python數據類型(集合)
1.集合(set)是一個無序不重複元素的序列(意思是有重複的會自動刪除,每次列印元素的位置不一定)
2.基本功能是進行成員關係測試和刪除重複元素
3.可以使用大括弧 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典
4.因為set存儲的是無序集合,所以我們沒法通過索引來訪問。訪問 set中的某個元素實際上就是判斷一個元素是否在set中。
1.創建集合
s=set()#創建一個空集合
s1={1,2,3,’a’,’python’}
2.刪除重複的元素
集合是一個無序不重複元素的序列(意思是有重複的會自動刪除,每次列印元素的位置不一定)
3.成員關係測試(檢測某個成員是否在集合中)
案例:從終端輸入5位數,以空格隔開,把這5位數存入列表中,剔除重複的數據,列印出來
#提示,列錶轉集合,集合轉列表
a=input(“請輸入5位數字:”)
mylist=a.split()
print(mylist)
b=set(mylist)
c=list(b)
print(c)
4.集合常用操作
1.添加元素
2.刪除元素
3.刪除整個集合
4.獲取集合的長度
5.不支持改元素
集合操作-添加元素
格式:
集合.add(元素)
格式:
集合.update(元素)
區別:
add不能添加列表,update可以
update是將字元串中的拆分成字元進行追加
add,是當做整體追加在集合中
#案例:從終端輸入一個數字就加入集合中,然後列印,又輸入一個數字,然後列印,直到輸入-1,退出輸入
#然後列印最終的集合
ms=set()
while 1:
a=int(input(“請輸入一個數字:”))
if a==-1:
break
ms.add(a)
print(ms)
print(ms)
#案例:從終端輸入一個字元串就加入集合中,然後列印,又輸入一個字元串,然後列印,直到輸入q,退出輸入
#然後列印最終的集合,字元串要分開存儲,如輸入hello,存儲的列表是{‘h’,’e’,’l’,’0′}
ms=set()
while 1:
a=input(“請輸入一個字元串:”)
if a==’q’:
break
ms.update(a)
print(ms)
print(ms)
集合操作-刪除元素及刪除整個集合
格式:
集合.remove(元素) # 元素如果不存在會引發KeyError
集合.discard(元素) # 元素如果不存在不發生任何事
集合.pop() # 集合元素是字元串類型時刪除隨機元素。 集合元素是其他數據類型時,刪除左邊第一個元素
del 集合名 #刪除整個集合
#案例:有集合{1,2,3,’hello’,’world’},刪除全部字元串,然後最左邊第一個元素
a={1,2,3,’hello’,’world’}
a.discard(“hello”)
a.discard(“world”)
a.pop()
print(a)
集合操作-獲取集合的長度
格式:
len(集合名)
#案例:有集合{1,2,3,4,’hello’,’a’},保留1個元素,其他的刪除,假如元素個數不確定
s={1,2,3,4,’hello’,’a’}
for i in range(len(s)-1):
s.pop()
print(s)
集合的集運算
集合的交集,並集,差集,對稱差集的運算
{1,2,3,4}交集{4,5,6,7} –4 交集()
{1,2,3,4}並集{4,5,6,7} -1,2,3,4,5,6,7 並集(|)
{1,2,3,4}差集{4,5,6,7} -1,2,3 差集(-)
{1,2,3,4}對稱差集{4,5,6,7}-1,2,3,5,6,7 4同時出現在兩個集合中,不選它 對稱差集(^)
#案例:使用花括弧和set創建各一個集合,然後對集合進行交、並、差、對稱差運算
s={1,2,3,4,5,6}
s1=set([6,7,8,9,10])
print(ss1)
print(s|s1)
print(s-s1)
print(s^s1)
python里集合無序,為什麼列表進行升序排列後不能直接轉化成集合?就因為集合是無序的嗎?
set()需要一個可迭代的對象作為參數,而列表的sort方法是在原列表上進行的排序,它的返回值是None。
應該這樣做:
nums.sort()
print(set(nums))
原創文章,作者:VQBR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143895.html