Questions tagged «arrays»

数组是一种有序的数据结构,由一组元素(值,变量或引用)组成,每个元素由一个或多个索引标识。当询问数组的特定变体时,请使用以下相关标记:[vector],[arraylist],[matrix]。使用此标签时,在特定于编程语言的问题中,使用正在使用的编程语言对问题进行标签。

10
python-如何在python中更详细地规范二维numpy数组?
给定一个3乘3 numpy数组 a = numpy.arange(0,27,3).reshape(3,3) # array([[ 0, 3, 6], # [ 9, 12, 15], # [18, 21, 24]]) 为了规范二维数组的行,我想到了 row_sums = a.sum(axis=1) # array([ 9, 36, 63]) new_matrix = numpy.zeros((3,3)) for i, (row, row_sum) in enumerate(zip(a, row_sums)): new_matrix[i,:] = row / row_sum 必须有更好的方法,不是吗? 可能需要澄清:通过标准化我的意思是,每行条目的总和必须为1。但是我认为这对于大多数人来说都是显而易见的。

5
JavaScript:检测参数是否为数组而不是对象(Node.JS)
我应该如何检测参数是否为数组,因为typeof []return,'object'并且我想区分数组和对象。 该对象可能看起来像,{"0":"string","1":"string","length":"2"}但如果它实际上是一个看起来像数组的对象,我不希望它作为数组出现。 JSON.parse并JSON.stringify能够做出这种区分。我该怎么做? 我正在使用与Chrome相同的基于V8的Node.JS。




15
声明对象数组
我有一个变量,它是一个数组,并且我希望该数组的每个元素默认都充当对象。为此,我可以在代码中执行类似的操作。 var sample = new Array(); sample[0] = new Object(); sample[1] = new Object(); 这工作正常,但我不想提及任何索引号。我希望数组中的所有元素都是一个对象。如何声明或初始化它? var sample = new Array(); sample[] = new Object(); 我尝试了上面的代码,但是没有用。如何在不使用索引号的情况下初始化对象数组?

2
在bash完成的背景下,关于$ {array [*]}与$ {array [@]}的混淆
我第一次尝试编写bash补全,这让我有些困惑,因为这两种取消引用bash数组(${array[@]}和${array[*]})的方式都令人困惑。 这是相关的代码块(顺便说一句,它可以工作,但是我想更好地理解它): _switch() { local cur perls local ROOT=${PERLBREW_ROOT:-$HOME/perl5/perlbrew} COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} perls=($ROOT/perls/perl-*) # remove all but the final part of the name perls=(${perls[*]##*/}) COMPREPLY=( $( compgen -W "${perls[*]} /usr/bin/perl" -- ${cur} ) ) } bash的文档说: 数组的任何元素都可以使用$ {name [subscript]}进行引用。需要使用花括号来避免与Shell的文件名扩展运算符冲突。如果下标为'@'或'*',则单词将扩展为数组名称的所有成员。仅当单词出现在双引号中时,这些下标才不同。如果单词用双引号引起来,则$ {name [*]}扩展为单个单词,每个数组成员的值均由IFS变量的第一个字符分隔,而$ {name [@]}扩展每个name元素换一个词。 现在,我想我知道应该compgen -W期望一个包含可能的替代词列表的字符串,但是在这种情况下,我不理解“ $ {name [@]}将名称的每个元素扩展为一个单独的词”的含义。 长话短说:${array[*]}作品;${array[@]}没有。我想知道为什么,并且我想更好地理解将要${array[@]}扩展的内容。

6
普通数组如何基于范围工作?
在C ++ 11中,您可以使用基于范围的for,它foreach与其他语言一样。它甚至适用于纯C数组: int numbers[] = { 1, 2, 3, 4, 5 }; for (int& n : numbers) { n *= 2; } 它怎么知道什么时候停止?它仅适用于在相同范围内声明的静态数组for吗?您如何for在动态数组中使用它?
87 c++  arrays  foreach  c++11 

11
为什么我们同时具有锯齿状数组和多维数组?
锯齿状数组和多维数组有什么区别。彼此之间有好处吗? 为什么Visual Studio不允许我做一个 MyClass[][] abc = new MyClass[10][20]; (我们以前在C ++中这样做,但是在C#中,它用红色的蠕动行强调[20]。表示无效的等级说明符) 但很满意 MyClass[,] abc = new MyClass[10,20]; 最后,我如何在一行中初始化它(就像我们在的简单数组中所做的那样{new xxx...}{new xxx....}) MyClass[][,][,] itemscollection;

5
为什么C和C ++支持在结构中对数组进行成员分配,但通常不支持?
我了解不支持数组的成员分配,因此以下操作将不起作用: int num1[3] = {1,2,3}; int num2[3]; num2 = num1; // "error: invalid array assignment" 我只是接受这一事实,认为该语言的目的是提供一个开放式框架,并让用户决定如何实现某些功能,例如复制数组。 但是,以下方法确实有效: struct myStruct { int num[3]; }; struct myStruct struct1 = {{1,2,3}}; struct myStruct struct2; struct2 = struct1; 该阵列num[3]是构件明智从它的实例在分配struct1到其实例在struct2。 为什么结构支持数组的成员分配,但通常不支持? 编辑:在结构中std :: string线程中Roger Pate的注释-复制/分配问题?似乎指出了答案的总体方向,但我自己知道的还不够。 编辑2:许多出色的回应。我之所以选择Luther Blissett,是因为我主要想知道该行为背后的哲学或历史原理,但是James McNellis对相关规范文档的引用也很有用。


6
在一个numpy数组中相乘
我试图将2D数组中的每个项乘以1D数组中的相应项。如果我想将每一列乘以一维数组,这非常容易,如numpy.multiply函数所示。但是我想相反,将行中的每一项相乘。换句话说,我想乘以: [1,2,3] [0] [4,5,6] * [1] [7,8,9] [2] 并得到 [0,0,0] [4,5,6] [14,16,18] 但是我得到了 [0,2,6] [0,5,12] [0,8,18] 有谁知道用numpy可以做到这一点吗?非常感谢Alex
87 python  arrays  numpy 

7
为什么在JavaScript中对象不可迭代?
为什么默认情况下无法迭代对象? 我经常看到与迭代对象有关的问题,常见的解决方案是迭代对象的属性并以这种方式访问​​对象中的值。这似乎很常见,使我想知道为什么对象本身不可迭代。 for...of默认情况下,像ES6这样的语句很适合用于对象。因为这些功能仅适用于不包含{}对象的特殊“可迭代对象” ,所以我们必须仔细研究以使其适用于要用于它的对象。 for ... of语句创建一个循环,循环遍历可迭代对象 (包括Array,Map,Set,arguments对象等)... 例如,使用ES6生成器函数: var example = {a: {e: 'one', f: 'two'}, b: {g: 'three'}, c: {h: 'four', i: 'five'}}; function* entries(obj) { for (let key of Object.keys(obj)) { yield [key, obj[key]]; } } for (let [key, value] of entries(example)) { console.log(key); console.log(value); for (let …

5
Javascript集与数组性能
可能是因为Sets是Java的相对较新的东西,但是我在StackO或其他任何地方都找不到关于Java两者之间的性能差异的文章。那么,就性能而言,两者之间有什么区别?具体地说,涉及删除,添加和迭代。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.