0
異なる長さのリストとしてデータセットを分析しようとしています。自分のデータセットの行(行)を関数ごとに1つずつ呼び出すようにしています。私は関数がリストの長さに関係なく適切に実行されるようにしたい。Q:Python3 - リストの長さを変更するステートメントがある場合
マイコード:私のデータのラインの長さが十分に長くない場合
f = open('DataSet.txt')
for line in iter(f):
remove_blanks = ['']
entries = line.split()
''.join([i for i in entries if i not in remove_blanks])
trash = (entries[0], entries[1])
time = int(entries[2])
column = [int(v) for v in entries[3:]]
def myFun():
print(entries)
print_string = ''
if column[0] == 100:
if column[1] >= 250 and column[2] == 300:
if len(column) >= 9:
digit = [chr(x) for x in column[4:9]]
print_string = ('code: ' + ''.join(str(digit[l]) for l in range(5)) + ' ')
if len(column) >= 13:
optional_digit = [chr(d) for d in column[9:13]]
for m in range(0, 4):
print_string += 'Optional Field: ' + optional_digit[m] + ''
else:
print_string += 'No Optional Field '
pass
pass
print(print_string)
print('')
myFun()
f.close()
起こっている何が(つまりリストがcolumn[6]
で終了)ですが、私はエラーを取得する:
line 17, in function
print('Code: ' + digit[l])
IndexError: list index out of range
リストの長さが異なる場合は、Code: ABC9
として印刷され、次の印刷はCode: AB
として印刷されるように、印刷時にはまだCode: #number #number #number #number
を印刷し、存在しない列は空白のままにします。
助けてください! :)
ありがとうございました!私は今プログラムを学んでいるので、これは複雑すぎると確信していますが、あなたのソリューションはうまくいっているようです。 if文のlen(column)条件を変更してコードを入れなければなりませんでした。ありがとう – DRauch