python列表和集合
⑴ python 列表和元組的區別
1、不可變和可變
元組是不可變對象,對象一旦生成,它的值將不能更改;列表是可變對象,對象生成後,可以對其元素進行更改、添加、刪除、清空、排序等操作。
2、可哈希和不可哈希
可哈希對象就是能映射成內存地址的對象。在Python基本數據類型中,只有列表、字典和可變集合是不可哈希的。說元組是可哈希也不對,如果元組中某個元素是列表、字典或可變集合,那麼這個元組也是不可哈希的。可哈希對象和不可哈希對象的區別體現在:可哈希對象可以作為字典的鍵和集合的元素,不可哈希對象則不可以。
⑵ python 集合裡面可以放list嗎
不可以,list是可變類型,可以用tuple代替
⑶ 在python中如何將兩個list合並成一個list,不用for語句
1、運算符:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = list1 + list2
print(list3)
2、extend()方法:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = list1.extend(list2)
print(list3)
3、切片方式:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1[len(list1):len(list1)] = list2
print(list1)
(3)python列表和集合擴展閱讀:
list的方法
L.append(var) #追加元素
L.insert(index,var)
L.pop(var) #返回最後一個元素,並從list中刪除之
L.remove(var) #刪除第一次出現的該元素
L.count(var) #該元素在列表中出現的個數
L.index(var) #該元素的位置,無則拋異常
L.extend(list) #追加list,即合並list到L上
L.sort() #排序
L.reverse() #倒序
list 操作符:,+,*,關鍵字del
a[1:] #片段操作符,用於子list的提取
[1,2]+[3,4] #為[1,2,3,4]。同extend()
[2]*4 #為[2,2,2,2]
del L[1] #刪除指定下標的元素
del L[1:3] #刪除指定下標范圍的元素
⑷ python中元祖,列表,集合,字典的區別
元祖中的數據是不可修改的.但是是有順序的
列表的長度是可變的,也就是說列表中的元素可以增刪改,列表也是有序的.
字典是鍵值對的組合,是無序的,長度可變,可以增刪改查.
其中列表,字典,元組都是可以相互嵌套的.
⑸ Python解析列表和集合中的排序不同的原因是什麼
列表存儲是順序存儲,所以輸出也是順序的。
集合和字典的存儲結構是hash表,是通過索引查找數據,所以存儲的位置很隨機,而讀取是順序讀取得,因此寫入和讀取得順序不同。他倆的區別是set不存儲value,只存儲key。
set是集合的意思。
⑹ Python3的元組,字典,列表,集合有什麼聯系和區別
4個都是python的數據結構。
元組和列表的底層實現是一樣的,本質都是把一堆東西放在一排,區別在於元祖放完後就不能改了。
你把字典理解成我們普通用的字典就可以了,而集合就是把字典的所有value都設置成None。字典和集合的底層實現原理是一樣的,但初學者不必關注這個原理。集合與數學中的集合有相同性質,比如唯一性,對比字典中key的唯一性來理解一下。
比方:你遇到一個沒見過的字,查查看是不是標準的漢字,這就是集合的作用,集合只關注有沒有的問題;如果是標准漢字,你要看看這個字的意思,這就是字典的作用;你現在找來一個漢字,打算組成成語,然後再找幾個字,向第一個漢字左右放,就是列表的作用;一旦發現一個成語,就固定不變了,字和字的排列都不能改,這就是元祖。
⑺ python兩個列表(或集合、字典)進行比較,如果一個列表中的幾位在另一個列表中出現,則刪除這些項
#coding=utf-8
#py2.7
test1 = ['a1', 'b2']
test2 = ['a1_001', 'a1_002', 'a1_003', 'a2_001', 'a3_001', 'b2_001']
print filter(lambda x:x[:2] not in test1,test2)
#我是按照你給的例子來寫的代碼,這樣只循環了 test2長度的次數
#「現在兩組數據長度不一樣」,不太明白這句話對於你的邏輯有啥影響
⑻ Python列表,元組,集合,字典的區別和相互
元組和列表是類似的, 只是元組不可修改內容
注意這里指的是不可修改元組元素的指向, 你可以修改內容指向的內容
>>>lst=[1,2,3]#定義列表
>>>a=(1,2,lst,4)#注意元組a的a[2]是一個列表
>>>a
(1,2,[1,2,3],4)
>>>a[2]=4#試圖修改元組元素的指向,報錯
Traceback(mostrecentcalllast):
File"<pyshell#3>",line1,in<mole>
a[2]=4
TypeError:'tuple'
>>>a[2][0]=0#不修改元組元素的指向的元素,但是修改指向的內容
>>>a
(1,2,[0,2,3],4)
>>>a[2].append(5)#不修改元組元素的指向的元素,但是修改指向的內容
>>>a
(1,2,[0,2,3,5],4)
字典完全區別於列表和元組
因為字典使用hash表來存儲, 所以只有能夠進行hash運算的才能作為鍵值
個人認為, 一般不可變的都能作為鍵, 比如str/tuple/None/function.列表不能作為鍵
最後, 由於字典是hash表演算法{字典查找O(1), 列表遍歷O(n)}, 在數據量巨大的時候, 字典的查找效率出奇的高
⑼ Python列表,元組,集合,字典的區別和相互轉
列表是一組值,其中的值可以改變
元組也是一組值,其中的值不能改變
列表與元組可以相互轉換
集合是一組唯一的無順序的值
字典是無固定順序的鍵值對