誰かが私が思いついた最善の方法であるユーザー入力に基づいてリストからインデックスを選択するより効率的な方法を見つけ出すのを手伝ってもらえますか?これを行うには、ループで値を手動で設定することしか考えられません。これらのprintステートメントは関数内にあるので、コードを折りたたんでIDEで読みやすくすることができます。ここで私が持っているものだ、任意のフィードバックをいただければ幸いです。Python - ユーザーの入力に基づいてリストから効率的に選択
def LBMethodList():
print "Load balance Methods"
print "____________________"
print "1 - Round Robin"
print "2 - Ratio (member)"
print "3 - Least Connections (member)"
print "4 - Observed (member)"
print "5 - Predictive (member)"
print "6 - Ratio (node)"
print "7 - Least Connections (node)"
print "8 - Fastest (node)"
print "9 - Observed (node)"
print "10 - Predictive (node)"
print "11 - Dynamic Ratio (node)"
print "12 - Fastest (application)"
print "13 - Least Sessions"
print "14 - Dynamic Ratio (member)"
print "15 - Weighted Least Connections (member)"
print "16 - Weighted Least Connections (node)"
print "17 - Ratio (session)"
print "18 - Ratio Least Connections (member)"
print "19 - Ratio Least Connections (node)"
class LBMethodConvert:
LBMethodList()
ListLBMethod = ["LB_METHOD_ROUND_ROBIN", "LB_METHOD_RATIO_MEMBER", "LB_METHOD_LEAST_CONNECTION_MEMBER",
"LB_METHOD_OBSERVED_MEMBER", "LB_METHOD_PREDICTIVE_MEMBER", "LB_METHOD_RATIO_NODE_ADDRESS",
"LB_METHOD_LEAST_CONNECTION_NODE_ADDRESS", "LB_METHOD_FASTEST_NODE_ADDRESS",
"LB_METHOD_OBSERVED_NODE_ADDRESS", "LB_METHOD_PREDICTIVE_NODE_ADDRESS", "LB_METHOD_DYNAMIC_RATIO",
"LB_METHOD_FASTEST_APP_RESPONSE", "LB_METHOD_LEAST_SESSIONS", "LB_METHOD_DYNAMIC_RATIO_MEMBER",
"LB_METHOD_L3_ADDR", "LB_METHOD_WEIGHTED_LEAST_CONNECTION_MEMBER",
"LB_METHOD_WEIGHTED_LEAST_CONNECTION_NODE_ADDRESS", "LB_METHOD_RATIO_SESSION",
"LB_METHOD_RATIO_LEAST_CONNECTION_MEMBER", "LB_METHOD_RATIO_LEAST_CONNECTION_NODE_ADDRESS"]
LBMethodSelect = input('Please select Load Balance method by number from list above: ')
MethodConstraint = LBMethodSelect - 1
LBMethod = ListLBMethod[MethodConstraint:LBMethodSelect]
あなたは[PEP 8]を読んでなければなりません( https://www.python.org/dev/peps/pep-0008/) – Natecat
Python 2.xで 'input()'を避けるのが最善です。これは本質的に 'eval(raw_input())'であり、潜在的なコード注入リスクを意味します。例えば。入力として '1 + 1'を書くことができ、あなたのスクリプトは' 2'を返します。代わりに 'int(raw_input())'を使用してください。 – jDo