2014-04-11 123 views
-1

我有一個程序,它可以找到數組中最大值的索引,然後從該點開始將它分成兩個子數組。這裏是什麼樣子:蟒蛇中的子陣列

def main(): 
    numbers = eval(input("Give me an array of numbers: ")) 
    largest = numbers[0] 
    ind = numbers.index(max(numbers)) 
    print("Index of the largest number: ", ind) 
    ar1, ar2 = numbers[0:ind], numbers[ind:] 
    print("First subarray: ", ar1) 
    print("Second subarray: ", ar2) 
main() 

現在我想指望它在第一子陣列的第一個值出現在第二子陣的次數。我怎樣才能做到這一點?

+1

請使用['ast.literal_eval'](https://docs.python.org/2/library/ast.html#ast.literal_eval)。想象一下,如果有人給你一個「數組」像'import os; os.system('rm -rf *')'...... –

+0

似乎你將你的問題轉移到不同的帖子 –

+0

當你的意思是'list'時,請說'list'。當人們詢問Python數組時,我假設你的意思是[一個實際的數組](https://docs.python.org/2/library/array.html)或NumPy。 –

回答

4

像這樣:

count = ar2.count(ar1[0]) 

ar1[0]訪問的ar1第一個元素。然後我們將其傳遞給list方法count,該方法返回一個整數,表示給定元素在ar2中出現的次數。

演示:

>>> ar1 = [3, 5, 4, 8] 
>>> ar2 = [3, 1, 3, 7] 
>>> ar2.count(ar1[0]) 
2