难度:★★☆☆☆
类型:数组
我们正在玩一个猜数字游戏。 游戏规则如下:
我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。
每次你猜错了,我会告诉你这个数字是大了还是小了。
你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):
-1 : 我的数字比较小
1 : 我的数字比较大
0 : 恭喜!你猜对了!
输入: n = 10, pick = 6
输出: 6
这道题和 题目278 第一个错误版本 的题意和解法基本相同,这里直接使用二分法进行判断。
如有疑问或建议,欢迎评论区留言~
数组允许进行批量 *** 作而无需使用for循环,因此更加简便,这种特性也被称为向量化。任何两个等尺寸之间的算术 *** 作都应用逐元素 *** 作的方式进行。
同尺度数组之间的比较,会产生一个布尔型数组。
上述 *** 作均是在同尺度数组之间进行的,对于不同尺度数组间的 *** 作,会使用到广播特性。
索引:获取数组中特定位置元素的过程;
切片:获取数组元素子集的过程。
new_a = aastype(new_type)
astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致。
ls = atolist()
转置是一种特殊的数据重组形式,可以返回底层数据的视图而不需要复制任何内容。
数组拥有 transpose 方法,也有特殊的 T 属性。
对于更高纬度的数组, transpose 方法可以接受包含轴编号的元组,用于转置轴。
ndarray的 swapaxes 方法,通过接受一对轴编号作为参数,并对轴进行调整用于重组数据。
swapaxes 方法返回的是数据的视图,而没有对数据进行复制。
Reference:
《Python for Data Analysis:Data Wrangling with Pandas,Numpy,and IPython》
1、Python的数组分三种类型:
(1) list 普通的链表,初始化后可以通过特定方法动态增加元素。定义方式:arr = [元素]
(2) Tuple 固定的数组,一旦定义后,其元素个数是不能再改变的。定义方式:arr = (元素)
(3) Dictionary 词典类型, 即是Hash数组。定义方式:arr = {元素k:v}
2、下面具体说明这些数组的使用方法和技巧:
(1) list 链表数组
a、定义时初始化
a = [1,2,[1,2,3]]
b、定义时不初始化一维数组:
arr = []
多维数组: arr = [i for i in range(10), 1,[]] #注意, i for in xx 这个必须放在第一个位置,否则要先定义i,
如:
arr = [i for i in range(5), j for j in range(5), []]
这是错误的
这是正确的
c、del 语句和 : 的用法
可以用 start : end 表示数组里的一个区间 ( i >= start and i < end)
del 删除数组里的指定元素
如:
d、遍历数组:
e、增加元素:
一维 arrappend('aaa')
二维 arr[0]append('aaa')
如果要在任意位置插入用 arrinsert(n, 值)
此外还有一种特殊的用法是:
arr += [数组元素]
在不指定下标的情况下,是允许用 += 增加数组元素的。
(2) Tuple 固定数组Tuple 是不可变 list,一旦创建了一个 tuple 就不能以任何方式改变它。
下面拿具体示例说明:
Tuple 没有的方法:
[1] 不能向 tuple 增加元素,没有 append 、 extend 、insert 等方法。
[2] 不能从 tuple 删除元素,没有 remove 或 pop 方法。
[3] 不能在 tuple 中查找元素,没有 index 方法(index是查找而不是索引,索引直接用下标即可,如:t[0])。
使用 tuple 的好处:
Tuple 可以转换成 list, 反之亦然。
转换方式为:
反之:
(2) Dictionary (哈希数组)词典数组
Dictionary 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明:
下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性。
可以直接增加一个元素,如果同名,则会改变原来的key的元素的值
输出所有的key
输出所有的value
遍历数组
int a; //基本整型
long int b; //长整型
char c; // 字符型
float d; // 单精度浮点型
double e; //双精度浮点型
char s[20]; // 字符型数组 或 字符串 型
对Python中数组的几种使用方法总结
今天小编就为大家分享一篇对Python中数组的几种使用方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
二维数组的初始化
matirx_done = [[0 for i in range(0, len(matirx))]for j in range(0, len(matirx[0]))]
就将其初始化为一个与matrix相同大小的元素全为 0 的矩阵
数组的多级排序
在数组 idea_collect = [[3, 1, 2], [3, 2, 1], [3, 2, 2], [3, 1, 1]] 中, 先按照第二项排列, 再按照第三项倒序排列 可写为:
idea_collectsort(key=lambda x: (x[1], -x[2]))
其中, x[1] 代表第二项正序排列, -x[2] 代表第三项倒序排列
排列结果为 [[3, 1, 2], [3, 1, 1], [3, 2, 2], [3, 2, 1]]
在一个 class 中多个函数不传参使用同一个数组
如例所示:
class Partition:
def __init__(self):
selfnum_complete = []
def partition(self, num, start, end):
selfnum_compelete = num
def partition_core(self):
del selfnum_compelete[0]
其中,selfnum_compelete就是 class 中两个函数同时可以直接调用的数组, 不过最好先在def __init__中声明这个数组
以上这篇对Python中数组的几种使用方法总结就是小编分享给大家的全部内容了
# 初始数组举例
ls = [10, 35, 21, 55, 31]
# 只要数组两个数是最大和第二大,那么面积一定最大
# 倒序排序数组
lssort(reverse=True)
# 取前两位,并乘积
print('{}和{}组成面积最大,为{}'format(ls[0], ls[1], ls[0] ls[1]))
参考代码如下:
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
namespace FindMaxWithIndex
{
/// <summary>
/// 有一个数组,每个元素的值都是实数,请写出求最大元素的值及其位置的算法
/// </summary>
class Program
{
static void Main(string[] args)
{
double[] Num = new[] { -8, 45439, 45439, 3, 45, 6547, 7, 66, 35, 45, 4, 6, 45439, 5, 46, 54, 6, 43, 5980, 34, 45439 };
//double[] Num = new [] { 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
int[] index = SearchMaxWithIndex(Num);
ConsoleWriteLine("The max number is: {0}", Num[index[0]]);
ConsoleWrite("The index of max number is:");
for (int i = 0; i < indexLength; i++)
{
if (index[i] == -1) break;
ConsoleWrite(" '{0}'", index[i]);
}
ConsoleReadKey();
}
private static int[] SearchMaxWithIndex(double[] arr)
{
int[] pos = new int[arrLength]; //记录最大值所在位置的数组
int position = 0; //初始设定数组的第1个元素为最大值
int j = 1;//j指示位置数组pos的下标
for (int i = 1; i < arrLength; i++)
{
if (arr[i] > arr[position])
{
position = i; //记下新的最大值的位置
j = 1; //位置数组pos的下标恢复为1,下标为0的位置为position预留
}
else if (arr[i] == arr[position])
pos[j++] = i; //记下重复最大值的位置
}
pos[0] = position; //位置数组pos的下标为0的位置为position预留
if (j < arrLength) pos[j] = -1; //-1为标识值,表示位置数组pos下标为0, 1, 2…(j-1)的位置存放的是最大值所在的位置
return pos;
}
}
}
以上就是关于374. 猜数字大小(Python)全部的内容,包括:374. 猜数字大小(Python)、Python——ndarray多维数组基本 *** 作(1)、python数组的使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)