2016-11-19 31 views
3

假設:Equavalent操作

h=[1,2,3] 

有一個在數學操作N[expr]這給了我們:

N[h[0]]=1, N[h[1]]=2, N[h[2]]=3 

和例如N[h[6]]=0,在Python這樣的事情?

+1

這個例子的代碼是不正確的語法數學。你究竟想要做什麼? – agentp

回答

0

外的鍵合在Python值使用Python中[..]操作者Accesing引發IndexError

>>> h = [1, 2, 3] 
>>> h[0] 
1 
>>> h[6] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
IndexError: list index out of range 

通過捕獲IndexError,您可以使用自定義功能有similiar操作:

>>> def N(sequence, index, fallback=0): 
...  try: 
...   return sequence[index] 
...  except IndexError: 
...   return fallback 
... 
>>> h = [1, 2, 3] 
>>> N(h, 0) 
1 
>>> N(h, 1) 
2 
>>> N(h, 2) 
3 
>>> N(h, 6) 
0 
>>> 
>>> N(h, 6, 9) # different fallback value other than 0 
9 
+0

我認爲最簡單的方法是: H = [1,2,3]範圍內 爲N(3100): h.append(0) 不過,我的問題是有沒有操作呢?例如通過操作N.(不定義其他算法) – BASU

+0

您也可以使用'h.extend([0] * 97)' – falsetru

1

N[expr] Mathematica中給你的數值經常表達。這在mathematica中是有意義的,這是dos符號數學。

在Python中,你通常不會有符號表達式(除非使用專門的庫,如sympy)。

可以使用int對象轉換爲整數。例如,int(2)int('2'),或int(2.6)結果值2 或者你也可以轉換爲浮點使用float