众所周知,插入优先级队列的元素具有确定其优先级的值。例如,如果我有五个A,B,C,D,E具有优先级的元素(我们称之为优先级值priorityI):
A = 10, B = 5, C = 1, D = 3, E = 2。但是我如何编写一个可以定义两个优先级值的优先级队列,我的意思是:如果两个元素具有相同的值priorityI,则值priorityII决定应首先采用哪个元素,例如:
element A has priorityI = 3, and prioriotyII = 5
element B has priorityI = 3, and prioriotyII = 1
Run Code Online (Sandbox Code Playgroud)
那么第一个元素 B 将首先从队列中取出。
我在python使用matplot图书馆的情节上工作。我必须生成的数字非常大,所以轴上的刻度也是一个很大的数字,占用大量空间。我试图将它们呈现为一种权力(例如,我想要 10^8,而不是打勾 100000000)。我使用命令:ax.ticklabel_format(style='sci', axis='x', scilimits=(0,4))但是这只创建了这样的东西
是否有其他解决方案可以将绘图的刻度设置为:1 x 10^4、2 x 10^4 等,或者在标签刻度的末尾将值 1e4 写为 10^4?
我有一个项目,假设'my_project'使用以下结构调用:
my_project
|
tox.ini
setup.py
src
|
client.py
server.py
config.json
# other files
tests.py
Run Code Online (Sandbox Code Playgroud)
文件中定义的类client.py和server.py包含在文件夹 src 中的每个文件的使用信息config.json和tests.py实现py.test测试。在客户端/服务器文件中,我按如下方式读取配置文件:
with open('./config.json') as infile:
self.parameters = json.load(infile)
Run Code Online (Sandbox Code Playgroud)
接下来,我创建了一个 tox.ini 文件,如下所示:
[tox]
envlist = py27,cov
[testenv]
#commands = py.test --cov=src/client.py src/tests.py -v
commands = py.test -sv --doctest-modules src/__init__.py src/tests.py
[testenv:py27]
commands = coverage erase
coverage run --source=src -m pytest
coverage report -m
deps = pytest
Run Code Online (Sandbox Code Playgroud)
但是当我运行tox命令时出现错误:"No such file or …
我有一个列表namedtuples,例如下面的例子:
from collections import namedtuple
Example = namedtuple('Example', ['arg1', 'arg2', 'arg3'])
e1 = Example(1,2,3)
e2 = Example(0,2,3)
e3 = Example(1,0,0)
e4 = Example(1,2,3)
e5 = Example(2,3,5)
full_list = [e1, e2, e3, e4, e5]
Run Code Online (Sandbox Code Playgroud)
我想在列表中的元素中列出给定参数的所有值,例如:for param''a arg1a list [1,0,1,1,2]和for param' arg2'有一个list [2,2,0,2,3]
如果我提前知道参数,我可以使用for循环,如
values = []
for e in full_list:
values.append(e.arg1)
Run Code Online (Sandbox Code Playgroud)
但是我如何编写一个可用于任何参数的通用函数?
我在玩 Rust 代码,但我遇到了转换Option<&[u8; 32]>为Option<&[u8]>.
一个(非常)简化的例子:
pub type Foo = [u8; 32];
fn fun_one(inp: Option<&[u8]>) {
println!("{:?}", inp);
}
fn fun_two(x: Option<&Foo>) {
fun_one(x)
}
fn main() {
let x = [11u8; 32];
fun_two(Some(&x));
}
Run Code Online (Sandbox Code Playgroud)
error[E0308]: mismatched types
--> src/main.rs:8:13
|
8 | fun_one(x)
| ^ expected slice `[u8]`, found array `[u8; 32]`
|
= note: expected enum `Option<&[u8]>`
found enum `Option<&[u8; 32]>`
Run Code Online (Sandbox Code Playgroud) 我写了一个函数,它添加了给定列表中的所有元素:
let rec add = function []->0 | h::t->h+add(t);;
现在我想写相同的功能,但使用List.fold_left,但我尝试了几个更改,但我仍然有一个错误.首先我尝试了这个:
let rec add = function []->0 | h::t-> add List.fold_left((fun h t-> h+t) h t);;
但我有一个错误,我注意到List.fold_left返回一个int值,所以递归是不必要的.所以我换了:
let add = function []->0 | h::t -> List.fold_left ( fun h t-> h+t h t);;
但我仍然得到关于错误类型的错误:
Error: This expression has type int -> 'a -> 'b
but an expression was expected of type 'a
但我不知道如何解决这个问题,任何人都可以List.fold_left在这个例子中解释我的使用方法吗?
我有几个清单:
l1 = [1,2,3,4,5,6,7,8]
l2 = [1,3,5,7]
l3 = [4,5,1,8,2]
l4 = [1,2,6,7]
l5 = [5,7,8]
Run Code Online (Sandbox Code Playgroud)
我想计算每个元素的出现次数,所以输出应该是
element 1 appears in 3 lists
element 2 in 3
element 3 in 2
element 4 in 2
element 5 in 4
...
Run Code Online (Sandbox Code Playgroud)
我可以使用任何内置功能或智能创意吗?因为我可以使用循环来做到这一点,但它似乎是非常具有破坏性的想法.
如何在 Python 中以秒为单位获取当前时间?我正在使用,calendar.timegm(time.gmtime())但我不确定这个给定的值是否以秒为单位?
我有一个列表:list = [A, B, C, D, A, A, A, B, E, C, C, E, D, A, B]
我想计算每个元素的外观,所以我可以使用函数count.但我想创建包含一个元组的表(element, number_of_reps),它是:[(A,5),(B,3),(C,3),(d,2),(E,2)].
我想这样做:
newlist = []
for i in list:
rep = list.count(i)
tup = (i, rep)
if tup not in newlist:
newlist.append(tup)
Run Code Online (Sandbox Code Playgroud)
但我可以做得更好:更快还是使用任何内置功能?
我有一个列表o元组:
list = [(element1, element2, element3), (elementelel4, element5, elementelement6), (el7, el8, elel9)]
Run Code Online (Sandbox Code Playgroud)
我想将它打印为一个表(因此元素之间的距离应该相同):
HEADER1 HEADER2 HEADER3
element1 element2 element3
elementelel4 element5 elementelement6
el7 el8 elel9
Run Code Online (Sandbox Code Playgroud)
我试图使用我发现的一些例子,但它用于打印列表列表,我有一个元组列表.
如果我有一个二进制字符串,让我们说str = "010100011010101001001101100101100110101"哪个是由其他字符串的base64版本编码的,我怎么能解码这个字符串?
我正在努力实现一些加密函数,其中需要哈希操作(我想计算自定义结构的哈希)所以我想使用cryptogolang包中的SHA256哈希函数.但是,我注意到当我为同一输入多次运行哈希函数时,它会返回不同的值.我的理解是SHA函数为单个输入值返回相同的哈希输出.下面是我对哈希函数的实现:
func myHash(s MyStruct) []byte{
bytes := []byte(fmt.Sprintf("%v", s))
h := sha256.New()
h.Write(bytes)
return h.Sum(nil)
}
Run Code Online (Sandbox Code Playgroud)
并myStruct具有以下字段:
type MyStruct struct {
elliptic.Curve // I use elliptic.P224() as my curve
X, Y, Z *big.Int
}
Run Code Online (Sandbox Code Playgroud)
对于相同的输入值,myHash函数的输出运行多次SInput如下:
[38 39 88 96 46 192 74 20 93 238 4 18 134 253 238 154 210 89 64 204 13 27 60 78 228 33 57 20 173 80 67 196]
[38 39 88 96 46 192 74 …Run Code Online (Sandbox Code Playgroud) 我在Go中有一个函数如下:
func MyFunction(name, address, nick string, age, value int) {
// perform some operations
}
Run Code Online (Sandbox Code Playgroud)
我想用参数调用这个函数("Bob","New York","Builder",30,1000)但是我想在调用函数时使用字段名称.但是以下技术都没有奏效(他们抛出'未解决的参考错误'):
MyFunction(name = "Bob", address = "New York", nick = "Builder", age = 30, value = 1000)
MyFunction(name : "Bob", address : "New York", nick : "Builder", age : 30, value : 1000)
Run Code Online (Sandbox Code Playgroud)
怎么做得好?在初始化结构时使用字段名称没有问题,但是对于函数来说,我似乎缺少某些东西.
python ×9
list ×4
python-2.7 ×4
go ×2
base64 ×1
calendar ×1
encoding ×1
formatting ×1
function ×1
hash ×1
matplotlib ×1
namedtuple ×1
ocaml ×1
packaging ×1
plot ×1
python-3.x ×1
queue ×1
rust ×1
sha256 ×1
string ×1
time ×1
tuples ×1