3

このコードの特定の部分で、対応する値に関連付けられた値を保持する際に問題が発生しています。優先度が最も低いチケットコードのみを印刷しようとしています。私が抱えていた最初の問題は、誰かが優先度を入力しないと、デフォルトで「なし」になるということでした。そのため、それを除外した後、残りのデータをリストに入れ、そのリストから最小優先度を取得して、チケット コードと一緒に出力したいと考えました。

データセットは次のようになります。

ticket    ticket code                 ticket priority
100_400   100_400 ticket description        None
100_400   100_400 ticket description         5
100_400   100_400 ticket description         1
100_400   100_400 ticket description         2
100_400   100_400 ticket description         4
100_400   100_400 ticket description         3

だから現在、これは私のコードがどのように見えるかです:

result = set()   
for ticket in tickets:
# to get rid of the "None" priorities
    if ticket.priority != '<pirority range>':
        print ""
    else:
        #this is where i need help keeping the priority and the ticket.code together
        result.add(ticket.priority)

print min(result) 
print ticket.code
4

2 に答える 2

2

優先順位ではなく、セットにチケットを追加します。result次に、次のように、セット内の優先度が最も低いチケットを見つけます。

minTicket = min(result, key=lambda x : x.priority)
于 2012-12-12T14:11:37.250 に答える
2

優先度だけでなく全体ticketをリストに追加してから、独自の機能を実装します。また、アプリケーションの残りの部分によっては、結果とは異なる構造を使用することを検討していますか?resultminset

# this computes the minimum priority of a ticket
def ticketMin (list):
    min = list[0]
    for ticket in list:
        if (ticket.priority < min.priority):
            min = ticket
    return min

# changed set to list
result = list()   
for ticket in tickets:
# to get rid of the "None" priorities
    if ticket.priority != '<pirority range>':
        print ""
    else:
        #notice the change below
        result.append(ticket)

# changed 'min' to 'ticketMin'
minTicket = ticketMin(result)

print minTicket.priority
print minTicket.code

または、Oscar がコメントで示しているように、数行を保存して組み込み関数を Lambda で使用することもできます。

# changed set to list
result = list()   
for ticket in tickets:
# to get rid of the "None" priorities
    if ticket.priority != '<pirority range>':
        print ""
    else:
        #notice the change below
        result.append(ticket)

# Oscar's solution:
minTicket = min(result, key=lambda val : val.priority)

print minTicket.priority
print minTicket.code
于 2012-12-12T14:10:46.713 に答える