2017-12-14 6 views
0

私は、以下のコードを作成しようとしています。どのリストをソートするかによって、最も低い変数が最初の位置[0]になるようにします。私が思う問題はwhileループが入ってくるときです.uList [y]とuList [z:p]の和を比較しますが、uList [y]がuList [z:p]のANY変数よりも大きい場合は、ループに入るまでにはステップインしません。何が起こっているのかを知るために、変数を個々に比較するのではなく、すべての変数を比較するのはどうすればいいですか?リストの変数を個別に比較する方法は?

コード:

import random 
import sys 
import os 
import time 
clear = lambda: os.system('cls') 
clear() 

y = 0 
z = 1 
x = 0 
nNum = 1 
uList = [] 
sList = [] 


listL = int(raw_input("How many elements would you like to be in your list?")) 


clear() 
while x < listL: 
    uList.append(int(raw_input("Num %s:" %(nNum)))) 
    x = x + 1 
    nNum = nNum + 1 

p = len(uList) - 1 

clear() 
print("Your list was %s!" %(uList)) 

while z <= p: 
    while uList[y] > uList[z]: 
     j = uList[y] 
     del uList[y] 
     uList.append(j) 

print(uList) 

P.S.私のコードに関する他のヒントやアドバイスは、私が非常に明らかにPythonを知っていて、一般的なLOLでコーディングしていることに感謝します。

+1

あなたは何をしようとしていますか?リストをソートしたいのですか? – afc11hn

+0

質問をよく理解しています。しかし、あなたはuList [y]がuList [z:p]の最大値よりも大きいかどうかチェックしたいですか? 条件が「uList [y]> max(uList [z:p])」である場合 編集:前のコメントで指摘されています:ソートしようとしています:ソートしたい場合は、 。あなたが自分のスクリプトでそれをやるのをやめようとしたら、私はコメントしました。 –

+0

はい私はソートしたいのですが、自分のコードを書いて経験だけをソートしたいのですが、uList [y]がuList [z:p]の変数よりも大きい場合はwhileループに入りたいと思いますあなたのコードは私がちょうど最大に変更する必要があります動作します。 @ T.Nel – iiZ

答えて

0

あなたの答えのコメントは、あなたの問題を既に解決していることを示唆していますが、いくつかのPythonのアドバイスを求めたからです:whileループの代わりにrangeのforループを使用して反復する 'pythonic'

i = 0 
while i < 10: 
    i += 1 

は次のようになります。

for i in range(10): 
    pass 

あなたは、あなたが列挙を使用することができますを反復されているシーケンスのインデックスを取得したい場合。

my_list = [*range(10)] # this is basically a for loop creating a list 

for index, element in enumerate(my_list): 
    print(index, element) 

これはあなたを与える:

0 0 
1 1 
2 2 
3 3 
4 4 
5 5 
6 6 
7 7 
8 8 
9 9 

最後に一つけれども。 raw_input(Python 2)とprint()(Python 2または3)を使用しているため、Python 2または3を使用しているかどうかはわかりません。 Pythonや一般的なプログラミングを学んでいるなら、Python 3を使うことをお勧めします。これは、いくつかの面で学ぶのが簡単で、効率と有効性の面でさまざまな改善をもたらします。

関連する問題