① python比較字典形式的列表是否部分相等
在工作中遇到有兩個字典形式的列表list1、list2
需求是當兩個列表有共同ID時,比較對應value的值是否相等
1、首先找到共同ID
運行後提取到的共同ID結果:
2、循環,根據共同ID查找字典中對應value的值
運行結果:
② 如何取出列表中字典的值並進行比對python
按照你的要求,遍歷貪吃蛇的坐標位置,並和隨機生成的坐標對比,如果相同就重新取值,不相同的時候輸出的Python程序如下
importrandom
map_width=30
map_height=30
a=[{'x':2,'y':4},{'x':5,'y':6},{'x':7,'y':8},{'x':4,'y':4}]
random_x=random.randint(3,map_width-8)
random_y=random.randint(3,map_height-8)
flag=True
foriinrange(len(a)):
ifrandom_x==a[i]['x']andrandom_y==a[i]['y']:
flag==False
break
ifflag==True:
print("random_x=%d,random_y=%d"%(random_x,random_y))
else:
random_x=random.randint(3,map_width-8)
random_y=random.randint(3,map_height-8)
源代碼(注意源代碼的縮進)
③ 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列表(list)、元祖(tuple)、集合(set),和字典(dictionary)區別和聯系
Python 的基礎數據結構有:列表( list ), 元祖( tuple ), 字典( dict ), 字元串( string ), 集合( set )等,區別聯系如下:
列表[]、元組()和字元串 都是 序列 ,字元串是字元的序列, 列表和元祖 是 任意類型 的序列
註: 本博主csdn同步鏈接
[1]. python列表(list)、元祖(tuple)、集合(set),和字典(dictionary)的比較
[2]. Python學習筆記(四)—列表(list)、元組(tuple)和字典(dictionary)、集合(set)
[3]. Python學習筆記(四)—列表(list)、元組(tuple)和字典(dictionary)、集合(set)
⑤ python兩個列表字典,用list1對比list2 保留list2中不含list1的數據
請問,怎樣刪除list2中和list1相同的數據?,然後得到一個新的列表數據
這個是可以通過得到的
list3=[item for item in list2 if item not in list1]
以title為准,主要是想篩掉list1中的內容。list3是list1剩下的,不包含list2中的數據
這個是可以通過得到
list3 = [item for item in list1 if item not in list2]
⑥ Python列表,元組,字典,集合的比較總結【表格對比】
列表,元組,字典,集合,都用於存放數據,它們區別總結如下:
⑦ python內置數據類型列表list和字典dict的性能
我們來討論下python的兩種最重要的內置數據類型列表list和字典dict上,各種操作的復雜度。
list列表數據類型常用操作性能:
1、按索引取值和賦值(v=a[i],a[i]=v)
由於列表的隨機訪問特性,這兩個操作執行時間與列表大小無關,均為O(1)
2、列表的曾長,可以選擇append()和_add_() "+"
list.append(v)的執行時間O(1)
list = list + [v],執行時間是O(n+k),因為新增了一個新的列表,其中k是被加的列表長度
舉例:4種生成前n個整數列表的方法
如圖:
我們可以計算一下這四個函數的耗時,如下
執行結果:
我們可以看到,4種方法運行時間差別很大,test1使用列表連接最慢,而test4使用list range最快,速度相差近200倍。
如下圖,我們總結下list基本操作的性能如何:
上圖可知pop()從列表末尾移除元素O(1),但是pop(i)從列表中間移除元素要O(n),為什麼呢?
因為從中部移除元素,要把移除元素後面的元素全部向前挪一位,才保證了列表按索引取值和賦值很快,達到O(1)。
dict數據類型:
字典和列表不同,dict根據key找到value,而list根據index。
字典最常用的取值get和賦值set,其性能為O(1),而contain(in)操作判斷字典是否存在某個key,其性能也是O(1)
list和dict的in操作對比:
設計一個性能試驗,驗證list中檢索一個值,對比dict中檢索一個值的耗時對比。如下程序:
如果如下:
可見list的in操作復雜度為O(n)
PS:大家可以去python官方的演算法復雜度網站看看:
https://wiki.python.org/moin/TimeComplexity
⑧ python中,如何將列表中的一列數據和字典的key比較
我利用異常處理,把不符合要求的key跳過不處理,剩下的都是相同key拿出來的,而且只用了一次循環哦!
#--encoding:utf-8--
#ListAndDic.py
list = [1, 4, 7]
dict = {1:11,2:22,4:44,8:88}
result = []
for i in list:
try:
result.append(dict[i]) #如果key相同則存儲,不同拋異常
except Exception,e:
print("不存在的key:"+str(e))
#do nothing
print(result)
# 不存在的key:7
# [11, 44]
⑨ python字典和列表區別有哪些
列表
1.任意對象的有序集合
列表是一組任意類型的值,按照一定順序組合而成的。
2.通過偏移讀取
組成列表的值叫做元素(Elements)。每一個元素被標識一個索引,第一個索引是0,序列的功能都能實現。
3.可變長度,異構以及任意嵌套
列表中的元素可以是任意類型,甚至是列表類型,也就是說列表可以嵌套。
4.可變的序列
支持索引、切片、合並、刪除等等操作,它們都是在原處進行修改列表。
5.對象引用數組
列表可以當成普通的數組,每當用到引用時,Python總是會將這個引用指向一個對象,所以程序只需處理對象的操作。當把一個對象賦給一個數據結構元素或變數名時,Python總是會存儲對象的引用,而不是對象的一個拷貝。
相關推薦:《Python教程》
字典
1.通過鍵而不是偏移量來讀取
字典就是一個關聯數組,是一個通過關鍵字索引的對象的集合,使用鍵-值(key-value)進行存儲,查找速度快。
2.任意對象的無序集合
字典中的項沒有特定順序,以「鍵」為象徵。
3.可變長、異構、任意嵌套
同列表,嵌套可以包含列表和其他的字典等。
4.屬於可變映射類型
因為是無序,故不能進行序列操作,但可以在遠處修改,通過鍵映射到值。字典是唯一內置的映射類型(鍵映射到值的對象)。
5.對象引用表
字典存儲的是對象引用,不是拷貝,和列表一樣。字典的key是不能變的,list不能作為key,字元串、元祖、整數等都可以。
和list比較,dict有以下幾個特點:
1.查找和插入的速度極快,不會隨著key的增加而增加。
2.需要佔用大量的內存,內存浪費多。
而list相反:
1.查找和插入的時間隨著元素的增加而增加。
2.佔用空間小,浪費內存很少。
所以,dict是用空間來換取時間的一種方法。
⑩ 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長度的次數
#「現在兩組數據長度不一樣」,不太明白這句話對於你的邏輯有啥影響