当前位置: 首页 > 知识库问答 >
问题:

如何将一个由2个元素组成的列表变成一个哈希?

卢光誉
2023-03-14

我有一个由两个元素组成的列表,就像通过(1..5)Z(20..24)得到的那样,我想把它们变成一个散列(在本例中,通过得到的{1=>20,2=>21,3=>22,4=>23,5=>24}。我可以“手工”完成它,但这并不太优雅,我相信Raku有一种惯用的方法。我提出的不优雅的替代方法是:

my @a = (1..5) Z (20..24);
my %a;
for @a -> @x {
   %a{@x[0]} = @x[1];

共有1个答案

宰父志新
2023-03-14
my %h = (1..5) Z=> (20..24);
say %h;  # {1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 => 24}

z元运算符将运算符作为其名称的一部分,默认为,因此默认情况下创建列表。如果添加pair构造函数(又名fat-comma),则创建pair列表,可以将其输入到hash中。

另一种解决方案是flattenz:

my %h = flat (1..5) Z (20..24);
 类似资料:
  • 给定需要排序和分组的对象列表: 我想将列表分组为列表中的列表,按widgetCode分组,每个子列表的元素按照它们在原始列表中遇到的顺序排列。我知道可以使用收集器将它们分组到列表映射中: 我并不认为键是理所当然地排序的,所以我采取了额外的步骤,将整个内容加载到SortedMap类型中: 我知道我可以通过使用.values()从sortedWidgetMap获取集合,而且我猜它是一个有序集合,因为它

  • 在努力使所有必要的计数变量正确后,我沮丧地发现它不起作用。第一次,是 它被强制为一个整数,因此变成。 在第二个循环重复中,只包含红色,变成一个简单的整数向量,。 我做错了什么?是否有一种方法可以初始化,这样它就不会被转换成一个数字向量,而是变成一个向量列表? 还有,除了“滚我自己的”,还有别的办法做整件事吗?

  • 我想在java中创建一个方法,该方法接收两个字符串列表:

  • 问题内容: 例如,如果我有一个元组列表 如何解开元组并将其重新格式化为一个列表 我认为这也与功能有关,但是我真的不知道该怎么做。请赐教。 问题答案: b = [i for sub in a for i in sub] 这样就可以了。

  • 问题内容: 我有一个像下面这样的列表,其中第一个元素是id,另一个是字符串: 我只想从此元组列表创建ID列表,如下所示: 我将使用此列表,因此它必须是整数值的列表。 问题答案:

  • 问题内容: 我想将一个DIV元素移到另一个元素中。例如,我要移动此对象(包括所有子对象): 到这个: 这样我有: 问题答案: 曾经尝试过普通的JavaScript … 吗?