0

名前を入力して、employeeListを検索して、その人がマネージャーであるかどうかを確認する簡単なプログラムを作成しようとしています。従業員数がそれ以上の場合、その人はマネージャーになり500ます。

たとえば["David", 501]、条件文で数値部分だけを指定するにはどうすればよいでしょうか。名前にアイテムを使用しましたが、番号を指定する方法がわかりません。ありがとう!

#!/usr/bin/python

input = raw_input("Please enter name to determine if employee is a manager: ")

employeeList = [["Shawn", 500], ["David", 501], ["Ted", 14], ["Jerry", 22]]

for item in employeeList :
    print "Employee Name is: ", item
    if item == input and item >= 500:
        print "This person is a manager."
    else:
        print "This person is not a manager."
4

5 に答える 5

3

数値インデックスを使用して、リスト内の特定の要素を参照できます。リストのリストを使用しているので、itemループ変数からインデックスを参照できます。

それに応じて調整されたforループは次のとおりです。

for item in employeeList:
  print "Employee name is: %s" % (item[0])
  if item[0] == input and item[1] >= 500:
    print "This person is a manager."
  else:
    print "This person is not a manager."
于 2012-06-25T21:43:45.793 に答える
1

item[0]名前とitem[1]その従業員番号になります。

于 2012-06-25T21:42:51.423 に答える
1

これは実際には次のようになります。

lookup = dict( (name, ' is a manager' if num >= 500 else ' is not a manager') for name, num in employeeList)
print '{}{}'.format(some_name_from_somewhere, lookup.get(some_name_from_somewhere, ' is not known'))
于 2012-06-25T22:07:11.237 に答える
1

まず、あなたの例ではタプルのリストではなくリストのリストを使用していることに注意してください。タプルは通常の角かっこで定義されます

("I", "am", "a", "tuple")

シーケンスアクセス

Pythonではlisttupleシーケンスであるため、数値インデックスを使用してアクセスできます

リストの場合:

item = ["Shawn", 501]、それからあなたはすることができますitem[0]そしてitem[1]

タプルの場合、まったく同じです。

item = ("Shawn", 501)、それからあなたはすることができますitem[0]そしてitem[1]

開梱

タプルが小さい場合は、「開く」(unpackingPythonの用語)も非常に便利です。

item = ("Shawn", 501)
name, number = item # We unpack the content of the tuple into some variables

名前付きタプル

Python 2.6では、便利なnamedtuple()タイプが導入されています。あなたの例では、次のようなことを行うことができます。

Employee = namedtuple("Employee", ['name', 'number'])
employeeList = [
    Employee("Shawn", 500),
    Employee("David", 501),
    Employee("Ted", 14],
    Employee("Jerry", 22)
]
for item in employeeList:
    if item.name == name and item.number >= 500:
        print "This person is a manager."
    else:
        print "This person is not a manager."
于 2012-06-25T22:10:02.577 に答える
0

リスト内のすべてのアイテムを印刷する意味は何ですか?

質問された人を見つけて、彼/彼女がマネージャーであるかどうかを確認するだけです。

#!/usr/bin/python

input = raw_input("Please enter name to determine if employee is a manager: ")

employeeList = [["Shawn", 500], ["David", 501], ["Ted", 14], ["Jerry", 22]]
employeeDict = dict(employeeList)

if input in employeeDict:
    if employeeDict[input] > 500:
        print "This person is a manager."
    else:
        print "This person is not a manager."
else:
    print "This person is not an employee."
于 2012-06-25T21:54:52.230 に答える