當前位置:首頁 » 編程語言 » 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-17 15:51:41 瀏覽:452
mc連點腳本 發布:2025-01-17 15:43:37 瀏覽:611
擇吉日推演算法 發布:2025-01-17 15:29:41 瀏覽:87
努比亞怎麼查看wifi密碼 發布:2025-01-17 15:29:36 瀏覽:202
簡單游使用腳本 發布:2025-01-17 15:23:57 瀏覽:580
linuxcompare 發布:2025-01-17 15:13:24 瀏覽:433
不能顯示隱藏的文件夾 發布:2025-01-17 15:13:24 瀏覽:530
學生作業管理系統源碼 發布:2025-01-17 14:42:31 瀏覽:172
hue編譯器 發布:2025-01-17 14:42:26 瀏覽:908
馬自達編程 發布:2025-01-17 14:21:41 瀏覽:495