[英]Python: find sublist with one non important element
我有一个清单:
lst = [[1, 2, 5], [2, 4, 6], [3, 3, 6]]
其中每个元素代表[x, y, size]
并且我正在尝试绘制大小为8x8
的 map 。
for x in range(8):
string = ""
for y in range(8):
if [x,y,*] in lst:
string += *
else:
string += "0"
是否有可能在*
可以是任何数字的列表中搜索[x, y, *]
而无需遍历其所有元素? 感谢您的时间和帮助!
假设*
总是在最后一个 position 中,您使用x,y
对作为键创建一个dict
。
>>> lst = [[1,2,5],[2,4,6],[3,3,6]]
>>> m = {(x,y): [x,y,s] for (x,y,s) in lst}
>>> m[2,4]
[2, 4, 6]
这只会为每个x,y
键存储一个元素,因此如果可以有多个具有相同x,y
的元素,请将值包装到列表中。
>>> m2 = collections.defaultdict(list)
>>> for x,y,s in lst:
... m2[x,y].append([x,y,s])
...
>>> m2[2,4]
[[2, 4, 6]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.