我需要一个Python(2.7)对象,其功能类似于集合(快速插入,删除和成员资格检查),但能够返回随机值.以前在stackoverflow上提出的问题有以下答案:
import random
random.sample(mySet, 1)
Run Code Online (Sandbox Code Playgroud)
但是对于大型集合来说这是非常慢的(它在O(n)时间内运行).
其他解决方案不够随机(它们依赖于python集的内部表示,这会产生一些非随机的结果):
for e in mySet:
break
# e is now an element from mySet
Run Code Online (Sandbox Code Playgroud)
我编写了自己的基本类,它具有恒定的时间查找,删除和随机值.
class randomSet:
def __init__(self):
self.dict = {}
self.list = []
def add(self, item):
if item not in self.dict:
self.dict[item] = len(self.list)
self.list.append(item)
def addIterable(self, item):
for a in item:
self.add(a)
def delete(self, item):
if item in self.dict:
index = self.dict[item]
if index == len(self.list)-1:
del self.dict[self.list[index]]
del self.list[index]
else:
self.list[index] = self.list.pop()
self.dict[self.list[index]] = index
del self.dict[item]
def getRandom(self): …Run Code Online (Sandbox Code Playgroud) 我正在为我的网站制作代码格式化程序,我在桌面和移动浏览器之间遇到了一些奇怪的行为.在桌面上,代码块如下所示:

在我的iphone上,无论出于何种原因,行号都是较小的字体大小:

我没有做任何事情来编辑我网站上任何地方的任何字体大小.这都是默认尺寸.如果我手动设置字体大小,比如12px,它仍然排列在我的桌面浏览器上,并且在我的移动浏览器上仍然更小.
代码块布局为包含两个单元格的表.左侧单元格包含1列表,每行包含一个数字.右侧单元格包含1列表,每行包含一行代码.
知道为什么字体在移动浏览器上缩小了吗?
编辑:链接:http://grantslatton.com/posts/blog/2013-08-16/sudoku_solver/
EDIT2:它在Windows手机和Android手机上正确呈现.
解决方案:结果移动Safari决定为您更改文本大小!我在这个页面上看到了一个有效的解决方案:修复Mobile Safari(iPhone)上的字体大小问题,其中文本呈现不一致而某些字体比其他字体大?
我在我的CSS的body {}部分放了-webkit-text-size-adjust:100%,以防止移动safari弄乱我的文本大小.