2017-12-13 3 views
0

私は以下のコードで間違っているのだろうかと思っています。ユーザーが入力して使用する2つのリスト2つのユーザーリストの共通の要素を持つ新しいリスト一度ユニオン部分に到達すると、エラーが発生します。比較リストを試すときに "TypeError: 'int'オブジェクトが反復不可能になる"

マイコード:

import random 
import sys 
import os 

clear = lambda: os.system('cls') 

x = 1 

listA = [] 
listB = [] 
commlist = [] 

clear() 
ammA = int(raw_input("How many elements do you want for your first  set?")) 


clear() 
while ammA > 0: 
    listA.append(int(raw_input("Element %i :" %(x)))) 
    x = x+1 
    ammA = ammA-1 


clear() 
ammB = int(raw_input("How many elements do you want for your second  set?")) 

x = 1 

clear() 
while ammB > 0: 
    listB.append(int(raw_input("Element %i :" %(x)))) 
    x = x+1 
    ammB = ammB-1 

commlist = list(set(ammA).union(set(ammB))) 

clear() 
print("Your two list are:") 
print(listA) 
print(listB) 
print("The common elements are:") 
print(commlist) 

エラーは次のとおりです。

Traceback (most recent call last): 
    File "c:/Users/Bob/Documents/Intro To Python/Practice/Comparitor.py", line 39, in <module> 
    commlist = list(set(ammA).union(set(ammB))) 
TypeError: 'int' object is not iterable 
+0

確かに[mcve]は 'set(1)'です。 'set((1、))'と比較してください。 *リスト*をセットにすることを意味しましたか? – jonrsharpe

+0

これは整数であるammAとammBです。listAとlistBのリストを共用体で使用する必要があります。 –

+0

UGH私はとてもばかげています。私はずっとそれを逃していました。ig私はちょっと疲れています。私はこのコードを見ていて、私は悲しいことに悲しいです。 –

答えて

0

問題は、あなたがリストに入れてどのように多くの要素を決定するために使用される整数の変数からセットを作成しようとしているということですリスト自体からではありません。代わりにこれを試してみてください。しかし

>>> listA = [1,2,3,4,5] 
>>> listB = [1,3,5,7,9] 
>>> set(listA).union(set(listB)) 
{1, 2, 3, 4, 5, 7, 9} 

注意を、共通要素のために、あなたはおそらくintersection代わりのunionをしたいということ。

>>> set(listA).intersection(set(listB)) 
{1, 3, 5} 
関連する問題