input関数をeval関数と組み合わせて使用して、数値のリストを入力できることはわかっています。
numbers = eval(input("enter a list of numbers enclosed in brackets: "))
また、itemsという名前のリストを指定すると、最初の要素を除くアイテムのすべての要素のリストを次の式で取得できます。
items[1:]
私はプログラムに私がしたいことをさせる方法がわからない
input関数をeval関数と組み合わせて使用して、数値のリストを入力できることはわかっています。
numbers = eval(input("enter a list of numbers enclosed in brackets: "))
また、itemsという名前のリストを指定すると、最初の要素を除くアイテムのすべての要素のリストを次の式で取得できます。
items[1:]
私はプログラムに私がしたいことをさせる方法がわからない
リストがあり、最初の値がリストの後半に再び表示されるかどうかを知りたい場合は、次を使用できます。
items[0] in items[1:]
これは、アイテムの最初の要素が後でアイテムに再び表示されるかどうかに応じて、TrueまたはFalseを返します。
evalを使用しないでください。ast.literal_eval
より安全です
import ast
numbers = ast.literal_eval(raw_input("enter a list of numbers enclosed in brackets: "))
より簡単な解決策は
x = l[0]
l[0] = None
print x in l
l[0] = x
利点は、リストを再作成する必要がないことです。
問題には2つの部分があります。
ユーザーから番号のリストを取得するには、いくつかの方法があります。あなたはPythonに慣れていないようですので、これをプログラムする最も簡単な方法を紹介します。
n = raw_input("How many numbers in your list?: ")
n = int(n) # assuming the user typed in a valid integer
numbers = []
for i in range(n):
num = raw_input("enter a number: ")
num = int(num)
numbers.append(num)
# now you have a list of numbers that the user inputted. Step 1 is complete
# on to step 2
first_num = numbers[0]
for n in numbers[1:]:
if n == first_num:
print "found duplicate of the first number"
ここで、ステップ1を実行するためのより洗練された方法があります。たとえば、リスト内包表記を使用できます。
numbers = [int(n) for n in raw_input("Enter a bunch of space-separated numbers: ").split()]
さらに、ステップ2は次のように簡略化できます。
if numbers[0] in numbers[1:]:
print "found duplicates of the first number"
お役に立てれば