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循环中的临时变量 如同指针,指向列表中的某元素
对临时变量的改变,本质是改变的列表中的元素