Python 如何比较数组中某个索引处的值的大小
假设我有3个int类型的数组Python 如何比较数组中某个索引处的值的大小,python,Python,假设我有3个int类型的数组 int[] arr1 = {1,3,8}; int[] arr1 = {2,5,3}; int[] arr1 = {3,7,7}; 我想将每个索引与同一索引下的其他数组进行比较,并按降序打印哪个更大 因此,输出将为1>2 除此之外我再也找不到了。。我试图先用2个阵列来做,然后尝试扩展它,使其成为动态的,但我一直遇到错误 for (int i = 0; i < arrays.Count; i++) { for (int d = 0; d < _s
int[] arr1 = {1,3,8};
int[] arr1 = {2,5,3};
int[] arr1 = {3,7,7};
我想将每个索引与同一索引下的其他数组进行比较,并按降序打印哪个更大
因此,输出将为1>2
除此之外我再也找不到了。。我试图先用2个阵列来做,然后尝试扩展它,使其成为动态的,但我一直遇到错误
for (int i = 0; i < arrays.Count; i++)
{
for (int d = 0; d < _size; d++)
{
//array0: index: 0 value: 1
//array0: index: 1 value: 3
//array0: index: 2 value: 5
var value = arrays[i][d];
var value2 = arrays[i+1][d];
Console.WriteLine($"array{i}: index:{d} value: {value}");
}
}
基于存在的任意数量的数组?我不确定输出示例中的>符号的函数,但以下代码适用于数组变量中任意数量的int[\u size]数组:
如果有
{
对于int d=0;d<\u size;d++
{
var VALUESANDINDEX=数组
.Selectarr,idx=>new{arrIndex=idx,arrValue=arr[d]}
.OrderByDowneringI=>i.arrValue
.Selecti=>数组{i.arrIndex}中的${i.arrValue};
var输出=$Index{d}:{valuesAndIndexes.First};
如果数组.Count>1
{
output=String.Concatoutput$大于{String.Join,后者大于,valuesAndIndexes.Skip1};
}
Console.WriteLineoutput;
}
}
假设以您提供的数组为例,代码的输出将是:
Index 0: 3 from array 2 is greater than 2 from array 1 which is greater than 1 from array 0
Index 1: 7 from array 2 is greater than 5 from array 1 which is greater than 3 from array 0
Index 2: 8 from array 0 is greater than 7 from array 2 which is greater than 3 from array 1
编辑:
最初的问题是用c标记的,而不是用python标记的。我的回答假设为c,请不要因为-1:而责备我。这种方法可能会帮助您:
int[] arr1 = {1, 3, 8, 8};
int[] arr2 = {2, 5, 3, 3};
int[] arr3 = {3, 7, 7, 7};
var arrayByName = new Dictionary<string, int[]>
{
{nameof(arr1), arr1},
{nameof(arr2), arr2},
{nameof(arr3), arr3}
};
for (var i = 0; i < arrayByName.FirstOrDefault().Value.Count(); i++)
{
Console.Write($"Index{i}: ");
var dataAtIndexByArrayName = arrayByName.Select(item => new
{
key = item.Key,
value = item.Value[i]
})
.OrderByDescending(d => d.value)
.ToDictionary(key => key.key, value => value.value);
foreach (var data in dataAtIndexByArrayName)
Console.Write(data.Key == dataAtIndexByArrayName.LastOrDefault().Key
? $"{data.Value} from array {data.Key}"
: $"{data.Value} from array {data.Key} is greater than ");
Console.WriteLine();
}
此外,您还可以自定义finalString以显示有多种方法可以实现此目的,下面是一种使用元组的方法: int[]arr1={1,3,8}; int[]arr2={2,5,3}; int[]arr3={3,7,7}; int[][]数组={arr1,arr2,arr3}; int arraySize=arr1.长度; int nArrays=arrays.Length; 对于int d=0;d
对于int x=0;x+1表示使用“nameof”,而-1表示使用周期内+=的字符串连接,这是一种非常糟糕的做法。它的性能很差,因为连续内存分配在每个周期中都需要越来越大的内存块来存储新的字符串实例,并导致内存碎片,这可能会导致错误在这个过程中有很多可用的空闲内存。谢谢bro@cly,我改变了这个问题最初是用c标记的,而不是python。下面几乎所有的答案都假设c。
Index0: 3 from array arr3 is greater than 2 from array arr2 is greater than 1 from array arr1
Index1: 7 from array arr3 is greater than 5 from array arr2 is greater than 3 from array arr1
Index2: 8 from array arr1 is greater than 7 from array arr3 is greater than 3 from array arr2
Index3: 8 from array arr1 is greater than 7 from array arr3 is greater than 3 from array arr2
Index 0: 3 from array 2 is greater than 2 from array 1 which is greater than 1 from array 0
Index 1: 7 from array 2 is greater than 5 from array 1 which is greater than 3 from array 0
Index 2: 8 from array 0 is greater than 7 from array 2 which is greater than 3 from array 1