python列表和字典
1. 如何取出列表中字典的值並進行比對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)
源代碼(注意源代碼的縮進)
2. Python中字典與列表的區別
字典:你知道一個key可以找到一個對應的value,通常你知道key是什麼,像查字典一樣,方向明確
列表:包含各種value,具體有些什麼值不知道,通常需要遍歷來取值。
3. Python中列表和字典有什麼區別,分別適用於什麼
字典生成慢,查找快。
列表生成快,查找慢。
如果是數據多,經常需要查詢,務必使用字典。
4. 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)}, 在數據量巨大的時候, 字典的查找效率出奇的高
5. Python中列表和字典的區別以及適用的場景
列表是一組值,其中的值可以改變元組也是一組值,其中的值不能改變列表與元組可以相互轉換集合是一組唯一的無順序的值字典是無固定順序的鍵值對
6. python字典列表和列表字典
最本質的區別:第一種方法得出的a是列表,而第二種的a是字典
用python語句表達來看就是:
1.type(a) == list
2.type(a) == dict
在互動式界面下顯示:
第一種:
>>> a
[{'name':'fokil'}]
此時a是一個列表,他具有列表的一切方法和屬性,但不具備任何字典的方法和屬性。列表可以有N個元素,元素的類型是任意的,與列表本身無關。而此時的a有一個元素,該元素是一個字典——但這並不代表整個列表a帶有任何字典的性質。明白?
第二種:
>>> a
{'name':['fokil']}
同上,此時a是一個字典,具有字典的一切方法和屬性,但不具備任何列表的方法和屬性。字典可以有N個元素,每個元素由一對key和內容的組合構成。key可以是任何單一對象的類型(不能是列表或字典——但可以是元組。當然,還可以是數字、字元/字元串,甚至是文件對象),而key對應的內容則可以是任意類型的。在此時,a中只有一個元素,key是一個字元串,而內容則是一個含有一個字元串元素的列表——同樣,這不意味著a具有任何的列表性質
總而言之,嚴格的講:沒有「字典列表」或「列表字典」這種概念
只有一個列表,他包含的元素的類型是字典——當然,列表中的元素可以是不同類型的,譬如:
a = [1, 'test', [2,3,4], {'name':'fokil'}]
同理,只有一個字典,他包含的元素中的一部分是列表(當然,key部分不可能是列表)。當然,也有可能是不同類型的元素:
a = {1:'b',(1,2,3):[4,5,6],'test':{'test2':['test3']}}
7. 用python將一個列表和一個字典匹配合並
l=[['1號機器','01'],['2號機器','02']]
dic='''{
"01":{"list":[{"ID":"a","Name":"Ua"},{"ID":"b","Name":"Ub"}]},
"02":{"list":[{"ID":"c","Name":"Uc"},{"ID":"d","Name":"Ud"}]}
}'''
dic=dic.replace(',',',')
dic=eval(dic)
result=[]
foriinl:
result.append([])
result[len(result)-1].append(i)
forkey,valueindic.items():
ifi[1]==key:
item=[]
forjinvalue['list']:
item.append([j['ID'],j['Name']])
result[len(result)-1].append(item)
print(result)
8. 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是用空間來換取時間的一種方法。
9. python列表和字典處理
items=[
{'Fcontent':'asdf','Fitemid_id':'29','Fparam':'adfa'},
{'Fcontent':'222','Fitemid_id':'21','Fparam':'b'},
{'Fcontent':'3334','Fitemid_id':'21','Fparam':'c'},
{'Fcontent':'DFDS','Fitemid_id':'16','Fparam':'fASFDS'},
{'Fcontent':'f','Fitemid_id':'29','Fparam':'f'},
{'Fcontent':'asdf','Fitemid_id':'22','Fparam':'b3'},
{'Fcontent':'sss','Fitemid_id':'22','Fparam':'abc'},
{'Fcontent':'test','Fitemid_id':'29','Fparam':'test'},
{'Fcontent':'','Fitemid_id':'29','Fparam':'a'},
{'Fcontent':'1234132','Fitemid_id':'29','Fparam':'bb'},
{'Fcontent':'sssss','Fitemid_id':'25','Fparam':'testcanshu'}
]
result={}
foriteminitems:
result.setdefault(
item["Fitemid_id"],
{"Fitemid_id":item["Fitemid_id"]}
)[item["Fparam"]]=item["Fcontent"]
importpprint
>>>
pprint.pprint(result)
{'16':{'Fitemid_id':'16','fASFDS':'DFDS'},
'21':{'Fitemid_id':'21','b':'222','c':'3334'},
'22':{'Fitemid_id':'22','abc':'sss','b3':'asdf'},
'25':{'Fitemid_id':'25','testcanshu':'sssss'},
'29':{'Fitemid_id':'29',
'a':'',
'adfa':'asdf',
'bb':'1234132',
'f':'f',
'test':'test'}}
10. 關於Python字典和列表嵌套用法
字典是可變的
for循環中的臨時變數 如同指針,指向列表中的某元素
對臨時變數的改變,本質是改變的列表中的元素