Kann man das auch noch besser schreiben?
Verfasst: Sonntag 21. Mai 2017, 12:40
Ihr habt mir schon sehr geholfen bei zwei Funktionen. Aber die letzte namens 'marked_notcommon_keylist' ist vielleicht noch nicht optimal.
Hier soll die Liste my_list in eine andere unter Verwendung von Keywörtern umgewandelt werden. Dabei soll außerdem markiert werden, ob es sich bei dem Eintrag von einem von most_common abweichenden handelt.
Code: Alles auswählen
from collections import Counter
def marked_notcommon_keylist(iterable,most_common,keys):
config=[]
for item in iterable:
key_dict = {}
for index,element in enumerate(item):
key_dict[keys[index]] = element
config.append([item!=most_common,key_dict])
return config
def most_in(sequence):
most_common = None
if sequence:
most_common = Counter(sequence).most_common(1)[0][0]
return most_common
def remove_trailing(sequence, value):
while sequence and sequence[-1] == value:
sequence.pop()
def main():
my_list = [
(15,0,0),
(75,0,1),
(75,0,1),
(25,0,1),
(75,0,1),
(15,0,0),
(0,0,0),
(0,0,0),
(0,0,0)]
remove_trailing(my_list,(0,0,0))
most_common = most_in(my_list)
columnconfig = None
if most_common:
columnconfig = marked_notcommon_keylist(my_list,most_common,('minsize','pad','weight'))
print(most_common,'\n',columnconfig)
if __name__ == '__main__':
main()