2017-01-19 19 views
1

我正在學習python,我不期望得到答案。我真的需要幫助。在python中查找不同的對和它們的產品

我給多個列表,從我需要檢查,以確保該名單:

一)它不是空列表

二)有否在列表中一個以上的整數

c)通過檢查不同的對來檢查列表中的整數是否具有偶數乘積值或奇數乘積值。例如list1 = [1,2,3]。這將返回False,因爲產品是平坦的。 list2 = [3,2,3]將返回True,因爲兩個奇數對的乘積是奇數。

這些都是我的一些想法:

一)要檢查它是否是一個空的列表中,您可以鍵入:

if not myList: 
    return(False) 

if myList != []: 
    return(True) 

B)

if myList != 1: 
    return(True) 

if int in myList < 0 and if int in myList > 2: 
    return(False) 

C)

if len(myList) % 2 == 0: 
    return(False) 

因爲如果有兩個甚至加倍,然後它會返回甚至兩種方式。我只想找到奇怪的產品。

if len(myList) % 2 != 0: 
     for i in myList: 
      if i % i == 1: 
       return(True) 
      else: 
       return(False) 

我測試了這一點,但我其實只是想出了它寫的。尋找對非常困難。

我想如果最終結果是1,那麼它們是相同的數字 - 對嗎?本網站的第一次使用者,所以我不熟悉問題的標準協議(儘管我已閱讀規則)。

對不起,如果這是漫長的,並感謝誰幫助我!

+0

每個人都應該是最地道的和你上面顯示的是所有選項「Python的」'如果不是lst'。 –

+1

'因爲兩個奇數對的乘積很奇怪'我不太明白這裏需要的邏輯! –

+0

我也不明白c)。你指的是檢查,如果列表中的每個整數的乘積是奇數還是偶數? –

回答

1

一)它不是空列表

你的空集裝箱檢查似乎罰款(剛落括號)

if not myList: 
    return False 

二)有否內多於一個的整數清單

這不起作用,它是一個數字檢查n加時賽列表長度檢查:

if myList != 1: 
    return(True) 

您可以改爲想要的(這也需要情況下,「A」的護理):

if len(myList) < 2: 
    return False 

c)檢查,如果在列表中的整數有偶數產品價值或 奇數產品價值通過檢查不同對。

這是一個棘手作爲解釋似乎與實例不一致:

例如list1的= [1,2,3]。這將返回False,因爲 產品是偶數。 list2 = [3,2,3]將返回True,因爲兩個奇數對的產品 是奇數。

這兩個列表都有一個均勻的產品,但您返回一個爲True,另一個爲False

你以後的解釋似乎在暗示你要確定校驗不通過注​​意到乘以所有奇數元素=奇產品(真)和任何連元=甚至產品(假),這會導致兩種可能的謂詞:

def are_all_odd(myList): # odd product True; even product False 
    return all(element % 2 for element in myList) 

def is_any_even(myList): # even product True; odd product False 
    return any(element % 2 == 0 for element in myList) 

但模數運算符%是與乘法一樣昂貴的除法。爲了避免這種情況,我們可以做到這一點位方式:

def are_all_odd(myList): # odd product True; even product False 
    return all(element & 1 for element in myList) 

def is_any_even(myList): # even product True; odd product False 
    return any(~element & 1 for element in myList) 

使用生成器的輸入,any()all()意味着這些將盡快回答可以決定停止。但是,數據可能不是最優化的次序,以儘量減少測試次數。

相關問題