Ich versuche, Datensätze als Listen unterschiedlicher Länge zu analysieren. Ich rufe Zeilen (Zeilen) meines Datensatzes nacheinander an, um von meiner Funktion analysiert zu werden. Ich möchte, dass die Funktion unabhängig von der Länge der Liste weiterhin ordnungsgemäß ausgeführt wird.F: Python3 - Wenn Statements zum Ändern der Listenlänge
Mein Code:
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()
Was geschieht, ist, wenn die Länge einer Linie meiner Daten nicht lang genug ist (dh die Liste an column[6]
endet), habe ich den Fehler:
line 17, in function
print('Code: ' + digit[l])
IndexError: list index out of range
Ich möchte, dass es weiterhin Code: #number #number #number #number
Druck und lassen Sie nicht vorhandene Spalten als Leerzeichen, wenn es gedruckt wird, so dass eine Zeile als Code: ABC9
und der nächste Druck als Code: AB
drucken, wenn es unterschiedliche Listenlängen gibt.
Bitte helfen! :)
Vielen Dank! Ich lerne jetzt gerade zu programmieren, also bin ich mir sicher, dass das zu kompliziert ist, aber es scheint, dass deine Lösung funktioniert hat. Ich musste nur die len (column) Bedingung für die if-Anweisung ändern und den Code eingeben. Danke – DRauch