小编mac*_*ggy的帖子

如何传递向量并返回字符串向量?

我试图弄清楚我需要做些什么,以传递一个向量并返回一个字符串向量,以解决exercism.io上的字谜练习。

这是我要通过的测试:

fn test_no_matches() {
    let inputs = ["hello", "world", "zombies", "pants"];
    let outputs: Vec<&str> = vec![];
    assert_eq!(anagram::anagrams_for("diaper", &inputs), outputs);
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所写的:

pub fn anagrams_for<'a>(word: &str, inp: Vec<&'a str>) -> Vec<&'a str> {
    let mut out: Vec<&str> = vec![];
    let ref poss = *inp[1];
    out.push(poss);
    out
}
Run Code Online (Sandbox Code Playgroud)

但是测试正在轰炸&inputs给我这个错误:

  tests/anagram.rs:7:48: 7:55 error: mismatched types:
   expected `collections::vec::Vec<&str>`,
    found `&[&str; 4]`
  (expected struct `collections::vec::Vec`,
    found &-ptr) [E0308]
  tests/anagram.rs:7     assert_eq!(anagram::anagrams_for("diaper", &inputs), outputs);
Run Code Online (Sandbox Code Playgroud)

我已经阅读了有关引用,借用和生存期的信息。老实说,我对传递引用感到有些困惑。我以为返回向量只是一个a,Vec<String>但我认为输入向量引用一个导致问题的str的问题。

如果有人可以将我推向更好的方向,那将不胜感激,因为我不想进行测试。

rust

2
推荐指数
2
解决办法
7396
查看次数

为什么这个字典变成了元组?

我有一本复杂的字典:

l = {10: [{'a':1, 'T':'y'}, {'a':2, 'T':'n'}], 20: [{'a':3,'T':'n'}]}
Run Code Online (Sandbox Code Playgroud)

当我尝试迭代字典时,我没有得到带有字典值列表的字典,我得到了一个像这样的元组:

for m in l.items():
    print(m)

(10, [{'a': 1, 'T': 'y'}, {'a': 2, 'T': 'n'}])
(20, [{'a': 3, 'T': 'n'}])
Run Code Online (Sandbox Code Playgroud)

但是当我打印 l 时,我得到了我原来的字典:

In [7]: l
Out[7]: {10: [{'a': 1, 'T': 'y'}, {'a': 2, 'T': 'n'}], 20: [{'a': 3, 'T': 'n'}]}
Run Code Online (Sandbox Code Playgroud)

如何迭代字典?我仍然需要键并处理值列表中的每个字典。

python dictionary

2
推荐指数
1
解决办法
3568
查看次数

标签 统计

dictionary ×1

python ×1

rust ×1