整数の配列が昇順でソートされているかどうかをチェックする関数を書いています。私は入力ファイルから少なくとも4つの配列でそれをテストしなければなりません。入力ファイルは、 11,22,33,10、1999、89(行1) 22,77,88(行2) 22,33,44,66(行3) 33、44、55、 66(4行目)。以下 は私のコードです:値のエラーと入力ファイルから配列の各行を並べ替えることができません
import sys
file_name = sys.argv[1]
file = open(file_name, 'r')
for line in file.readlines():
curr_arr = []
for i in line.split(','):
curr_arr += [int(i)]
def is_sorted(curr_arr):
if(len(curr_arr) < 1):
return True
if (len(curr_arr) > 2):
curr_min = curr_arr[0]
for curr_element in curr_arr:
if curr_element >= curr_min:
curr_min == curr_element
else:
return False
return True
print '\nArrays of integers in {} are sorted in an increasing fashion: {}'.format(curr_arr, is_sorted(curr_arr))
私は、コードを実行しようとしたとき、私はValueErrorを得た:ベース10とint型のため、無効なリテラルを():「9行目で」と私がしようとしたときに私のコードは1つのだけの配列を返します4つの配列のファイルでテストします。
これは私の出力である[9、10、11、12]の整数の
アレイは増加方法でソートされている:真
空白文字や他の種類の空白文字で「int」を呼び出そうとしています。私はそれがあなたが思うものではないと思うので、 'split 'が何を返すのかを再度確認してください。 – Carcigenicate
ちょうど並べ替えを使用して元のリストとソートされたリストを比較してみませんか? –
@Sandeep Lade:要素ごとにループし、ソートを使って比較することはできません。 – user8786892