当前位置:首页 » 编程语言 » python数组下标1

python数组下标1

发布时间: 2022-08-25 18:06:10

python中yield和return究竟有什么区别,怎么用

常看到别人使用或讨论yield语法,能搜到的中文解释却不多,今天决心搞定yield,把暂时的理解贴到这里.

搞定yield之前: 叠代器(iterator)

发现yield: 生成器(constructor)

使用yield: 递归调用

1. iterator

叠代器最简单例子应该是数组下标了,且看下面的c++代码:

int array[10];

for ( int i = 0; i < 10; i++ )

printf("%d ", array[i]);

叠代器工作在一个容器里(array[10]),它按一定顺序(i++)从容器里取出值(array[i])并进行操作(printf("%d ", array[i])。

上面的代码翻译成python:

array = [i for i in range(10)]

for i in array:

print i,

for i in array干了什么(别乱想)?首先,array作为一个list是个容器,其次list这个内建类型有默认的next行为,python发现这些之后采 取的秘密的没被各位看到的动作是:拿出array这丫容器的叠代器,从里面next一下把值给i供for循环主体处置,for把这个值print了。

现在的问题是数据可以做容器叠代,代码可以吗?

怎么不行,碗碟可以用来放菜,wk们不就联想出用nt盛吗,当然我们的yield不会那么yellow + bt

2. constructor

怎么把函数变成constructor? 在函数体里有yield就行了!

def gen():
print 'enter'
yield 1
print 'next'
yield 2
print 'next again'

for i in gen():
print i

各位!python看到gen函数里出现yield,知道可以用next了,问题是怎么对代码这个容器玩next?

从容器里拿到iterator的时候它还什么也不是,处在容器入口处,对于数组来说就是下标为-1的地方,对于函数来说就是函数入口嘛事没干,但是万事俱备就欠next。

开始for i in g,next让itreator爬行到yield语句存在的地方并返回值,

再次next就再爬到下一个yield语句存在的地方并返回值,依次这样直到函数返回(容器尽头)。
您一定看出来上面代码的输出是:

enter
1
next
2
next again

如果没看出来请不要往下看了免得反被yield搞定。

3. 使用yield

yield的代码叠代能力不但能打断函数执行还能记下断点处的数据,下次next书接上回,这正是递归函数需要的。

例如中序遍历二叉树:

(应该是David Mertz写的)

def inorder(t):
if t:
for x in inorder(t.left):
yield x
yield t.label
for x in inorder(t.right):
yield x

for n in inorder(tree)

print n

当然yield这种代码next的能力还可以用在其它方面,发现拍案的在贴咯。

⑵ 请问什么是Python的数组下标,下标是什么意思,是不是还有一个上标

数组下标就是数组的索引,一般从0开始,到len(array)-1.
通过这个可以查看数组中特定位置的元素。
没有上标之说。

⑶ python怎么超过数组下标范围了

你这个肯定是要超的。
比如 key input 'z' ,key =25
(eslzm.index(i)+1) +key 肯定 >25 ,那就超定了。
(eslzm.index(i)+key)%26 这样就可以了

⑷ python如何获取数组元素的下标并输出

python获取数组的下标并输出的方法:

1、for循环函数可以遍历数组的每一个元素,使用“for i in rang(0,len(数组名))”的方式可以得出数组所有元素的下标

2、然后输出“i”就可以输出数组的下标了

完整代码如下:

执行结果如下:

更多Python知识,请关注:Python自学网!!

⑸ python 数组索引起始编号是0还是1

python的创始人(Guido van Rossum)说过,Python使用0-based索引方式的原因之一是Python的切片(slice)语法。 先看看切片的用法。可能最常见的用法就是“从数组中切出前n位”或“从数值这第i位起切出n位”(前一种实际上是i==起始位的特殊用法)。

⑹ python列表问题

-1是下标,负数表示是从数组末尾倒着数的。这样你就应该明白了。
正着数,从0开始,倒着数,从-1开始。

⑺ python怎么设置list的下标从1开始

因为在运行python脚本的时候你没在后面添加一个值。sys.argv[1]意思是取位置第二的参数。位置第一的是py名字,第二的参数你没有输入,所以取不到,所以报错out of range。
你执行的时候一般是这样的:python xxx.py A 其中xxx是程序名字,即sys.argv[0]的位置。A是参数,即sys.argv[1]取的位置。必须有这个A才行,要不然sys.argv[1]取不到值肯定报错

⑻ 用python 求一个数组中最大的三个元素及其所在位置

参考代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FindMaxWithIndex
{
/// <summary>
/// 有一个数组,每个元素的值都是实数,请写出求最大元素的值及其位置的算法
/// </summary>
class Program
{
static void Main(string[] args)
{
double[] Num = new[] { -8, 4543.9, 4543.9, 3, 45, 654.7, 7, 66, 35, 45, 4, 6, 4543.9, 5, 46, 54, 6, 43, 5.980, 34, 4543.9 };
//double[] Num = new [] { 1.0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };

int[] index = SearchMaxWithIndex(Num);

Console.WriteLine("The max number is: {0}", Num[index[0]]);
Console.Write("The index of max number is:");

for (int i = 0; i < index.Length; i++)
{
if (index[i] == -1) break;
Console.Write(" '{0}'", index[i]);
}

Console.ReadKey();
}

private static int[] SearchMaxWithIndex(double[] arr)
{
int[] pos = new int[arr.Length]; //记录最大值所在位置的数组

int position = 0; //初始设定数组的第1个元素为最大值

int j = 1;//j指示位置数组pos的下标

for (int i = 1; i < arr.Length; 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 < arr.Length) pos[j] = -1; //-1为标识值,表示位置数组pos下标为0, 1, 2…(j-1)的位置存放的是最大值所在的位置

return pos;
}
}
}

⑼ python如何获取某个数组中某些下标的元素

print(your_list.index('your_item')) ###your_list为列表名称 your_item为需要修该的数据。

print [i for i, x in enumerate(your_list) if x == 'your_item']

your_list为待查list,your_item为具体要查的元素,打印出一个包含所有要查元素下标的列表。

【python列表】

1、可以先创建一个空列表,可以使用type(),查看类型。

热点内容
我家小镇更新密码是多少 发布:2025-01-18 00:22:39 浏览:168
手动挡停车场安卓和苹果怎么连 发布:2025-01-18 00:11:45 浏览:359
斗鱼下载后输入什么密码才能下载 发布:2025-01-18 00:04:09 浏览:81
跳出游标sql 发布:2025-01-17 23:42:26 浏览:774
通达信软件源码 发布:2025-01-17 23:41:48 浏览:698
百度云上传的照片不全 发布:2025-01-17 23:41:36 浏览:887
f7x哪个配置值得入手 发布:2025-01-17 23:40:12 浏览:906
谷歌输入法的贴纸安卓怎么用 发布:2025-01-17 23:35:33 浏览:217
邻接种子算法 发布:2025-01-17 23:34:28 浏览:312
日记密码是什么 发布:2025-01-17 23:27:48 浏览:209