-2

input関数をeval関数と組み合わせて使用​​して、数値のリストを入力できることはわかっています。

numbers = eval(input("enter a list of numbers enclosed in brackets: "))

また、itemsという名前のリストを指定すると、最初の要素を除くアイテムのすべての要素のリストを次の式で取得できます。

items[1:]

私はプログラムに私がしたいことをさせる方法がわからない

4

4 に答える 4

4

リストがあり、最初の値がリストの後半に再び表示されるかどうかを知りたい場合は、次を使用できます。

items[0] in items[1:]

これは、アイテムの最初の要素が後でアイテムに再び表示されるかどうかに応じて、TrueまたはFalseを返します。

于 2012-07-29T17:31:47.323 に答える
2

evalを使用しないでください。ast.literal_evalより安全です

import ast
numbers = ast.literal_eval(raw_input("enter a list of numbers enclosed in brackets: "))
于 2012-07-29T17:39:37.350 に答える
2

より簡単な解決策は

x = l[0]
l[0] = None
print x in l
l[0] = x

利点は、リストを再作成する必要がないことです。

于 2012-07-29T17:45:53.263 に答える
1

問題には2つの部分があります。

  1. ユーザーから番号のリストを取得する
  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"

お役に立てれば

于 2012-07-29T18:37:08.203 に答える