さて、私はそれをできるだけ簡単に説明しようとします。
input()
には、string
という名前が付けられています。そして、必要なものに型キャストする必要があります。
これをあなたのPythonインタプリタで試してみてください。
>>> a=input()
5
>>> a+10
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
a+10
TypeError: Can't convert 'int' object to str implicitly
なぜエラーがスローされるのですか?これはという強力な型付き言語と呼ばれます。 Pythonの意味はこれを許可していません。あなたが望むものを得るために、あなたはそれをあなたの望みのタイプに変更する必要があります。これを試して?
>>> a=input()
5
>>> int(a)+10
15
>>>
int()
を追加したので動作しました。これは型キャストです。今あなたの問題では、文字列として取得して使用しています。
これは、list(input())
を使用してリストに変更する必要があると述べています。文字列の不要な空白があっても、
>>> a
'1 2 3 4'
>>> list(a)
['1', ' ', '2', ' ', '3', ' ', '4']
この場合、split()を使用します。デフォルトでは、your_string.split()
は空白で分割されたリストを返します。分割する区切り文字を指定することもできます。だからここlist()
>>> a
'1 2 3 4'
>>> a.split()
['1', '2', '3', '4']
print('Please type in your list number 1')
list_1=input().split()
print(list_1)
print('Great! Please type in your list number 2 ')
list_2=input().split()
print(list_2)
commonlist=[] # this will be the list containing common elements.
for i in range(len(list_1)):
if list_1[i] in list_2:
commonlist.append((list_1[i])) # this will put the common elements between the two lists in commonlist
print(commonlist)
出力を使用する必要:
Please type in your list number 1
1 2 3 4
['1', '2', '3', '4']
Great! Please type in your list number 2
2 3 5 6
['2', '3', '5', '6']
['2', '3']
はあなたが私は、リスト内の共通の要素を見つけるために、この方法をお勧めしますが、あなたが望んだ参照してくださいません。もっと簡単です。
print('Please type in your list number 1')
list_1=input().split()
print('Great! Please type in your list number 2 ')
list_2=input().split()
commonlist = set(list_1)&set(list_2)
print(list(commonlist))
commonlist =セット(list_1)&セット(list_2)が一列に終了します。それはPythonの方法で行います。簡単な方法。
注::これは、共通項目を順序通りに示しているわけではありません。しかし、あなたはすべてのものを手に入れます。
また、元のコードはpython2.7で有効な点である – VMRuiz
@VMRuizを変更せずに動作します。しかし、私はOPがPython3を使用していたことはかなり明らかだったので、これを省略することにしました。また、Python2で 'input()'を使用するのは悪です;-) –
もちろん、それはあなたの答えの中毒であって、苦情ではありませんでした – VMRuiz