Doppelte Elemente aus Dictionary mit listen als Value aussortieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Hallo ich habe mir per Zufall ein Dictionary mit einem Zeichen als Schlüssel und zufälligen RGB Werten generieren lassen.
Wie kann ich jetzt am einfachsten schauen ob ein RGB Wert doppelt vorkommt?
Ich hatte die Idee die Listen in ein Set zu packen, aber das geht ja nicht😵
Das ist das Dictionary:

Code: Alles auswählen

{"a": [86, 210, 158], "b": [37, 140, 23], "c": [138, 16, 211], "d": [199, 36, 16], "e": [168, 40, 196], "f": [114, 237, 186], "g": [94, 146, 147], "h": [242, 87, 253], "i": [52, 9, 192], "j": [176, 23, 93], "k": [217, 248, 144], "l": [162, 111, 83], "m": [130, 186, 166], "n": [241, 88, 254], "o": [139, 58, 216], "p": [243, 80, 151], "q": [60, 12, 243], "r": [83, 127, 88], "s": [147, 113, 118], "t": [57, 227, 1], "u": [221, 55, 160], "v": [247, 145, 80], "w": [113, 183, 245], "x": [171, 44, 192], "y": [10, 243, 128], "z": [86, 98, 254], "A": [125, 154, 204], "B": [200, 167, 231], "C": [72, 59, 200], "D": [70, 40, 251], "E": [145, 216, 239], "F": [83, 244, 150], "G": [22, 8, 100], "H": [131, 222, 67], "I": [220, 39, 54], "J": [60, 105, 241], "K": [245, 199, 217], "L": [171, 107, 112], "M": [20, 53, 163], "N": [106, 143, 125], "O": [150, 107, 143], "P": [11, 229, 148], "Q": [24, 68, 10], "R": [10, 89, 183], "S": [14, 120, 179], "T": [165, 142, 207], "U": [22, 110, 126], "V": [113, 209, 59], "W": [97, 247, 240], "X": [77, 141, 214], "Y": [252, 76, 234], "Z": [112, 178, 239], "0": [175, 221, 64], "1": [218, 17, 17], "2": [101, 10, 169], "3": [78, 36, 157], "4": [13, 65, 65], "5": [53, 74, 38], "6": [58, 229, 246], "7": [78, 143, 237], "8": [242, 169, 185], "9": [157, 135, 174], "!": [204, 253, 180], "\"": [19, 53, 178], "#": [211, 128, 147], "$": [224, 135, 219], "%": [143, 157, 146], "&": [4, 230, 78], "'": [63, 6, 226], "(": [84, 3, 157], ")": [232, 204, 249], "*": [52, 101, 113], "+": [50, 50, 2], ",": [197, 155, 254], "-": [205, 220, 146], ".": [71, 239, 219], "/": [72, 126, 99], ":": [74, 211, 147], ";": [149, 170, 140], "<": [249, 90, 84], "=": [94, 63, 137], ">": [151, 170, 6], "?": [254, 112, 232], "@": [51, 185, 164], "[": [25, 178, 115], "\\": [169, 196, 174], "]": [133, 228, 101], "^": [30, 138, 142], "_": [181, 248, 155], "`": [167, 19, 227], "{": [226, 111, 125], "|": [90, 68, 34], "}": [238, 74, 201], "~": [113, 244, 45]}
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Bei einem Set wirst Du auch keine Doppelten Einträge finden, weil ja jeder Key einzigartig ist.
Du kannst aber die Values als Tuple in ein Set packen.
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Ok aber wieso gibt es einen Fehler?

Code: Alles auswählen

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Json Datei

Code: Alles auswählen

{"a": [95, 250, 200], "b": [18, 139, 158], "c": [194, 147, 94], "d": [108, 1, 242], "e": [186, 127, 130], "f": [47, 3, 5], "g": [140, 120, 222], "h": [162, 70, 192], "i": [82, 164, 106], "j": [19, 204, 48], "k": [19, 202, 172], "l": [201, 10, 151], "m": [30, 160, 185], "n": [49, 75, 120], "o": [22, 113, 236], "p": [60, 234, 231], "q": [43, 234, 170], "r": [243, 180, 86], "s": [50, 65, 49], "t": [251, 71, 103], "u": [10, 20, 191], "v": [140, 220, 242], "w": [153, 202, 66], "x": [212, 176, 30], "y": [84, 64, 161], "z": [179, 2, 58], "A": [152, 193, 13], "B": [240, 196, 237], "C": [214, 189, 33], "D": [33, 133, 74], "E": [121, 127, 213], "F": [106, 139, 220], "G": [232, 32, 211], "H": [128, 99, 161], "I": [204, 16, 173], "J": [236, 115, 175], "K": [103, 40, 178], "L": [170, 249, 217], "M": [199, 161, 144], "N": [147, 36, 14], "O": [132, 154, 232], "P": [29, 46, 203], "Q": [140, 54, 208], "R": [189, 15, 236], "S": [68, 10, 230], "T": [35, 69, 160], "U": [196, 165, 101], "V": [148, 214, 13], "W": [214, 14, 4], "X": [140, 187, 189], "Y": [221, 46, 70], "Z": [137, 93, 128], "0": [12, 200, 57], "1": [212, 95, 135], "2": [139, 104, 26], "3": [88, 222, 80], "4": [236, 18, 5], "5": [233, 245, 3], "6": [244, 244, 213], "7": [147, 216, 28], "8": [115, 202, 202], "9": [163, 60, 234], "!": [144, 83, 219], "\"": [83, 37, 224], "#": [173, 102, 21], "$": [120, 206, 220], "%": [18, 16, 118], "&": [63, 88, 75], "'": [50, 2, 88], "(": [55, 59, 146], ")": [96, 238, 254], "*": [198, 153, 146], "+": [69, 68, 103], ",": [185, 221, 106], "-": [170, 55, 153], ".": [227, 143, 157], "/": [53, 174, 238], ":": [104, 226, 110], ";": [233, 210, 245], "<": [124, 26, 93], "=": [112, 40, 201], ">": [196, 152, 59], "?": [140, 246, 40], "@": [51, 26, 29], "[": [115, 156, 237], "\\": [29, 33, 150], "]": [23, 189, 88], "^": [151, 179, 235], "_": [158, 251, 45], "`": [82, 134, 84], "{": [163, 173, 19], "|": [186, 34, 70], "}": [172, 4, 213], "~": [86, 239, 85]}
Code

Code: Alles auswählen

def zgü():
    s = set()
    with open("aaa") as f:
        for i in json.load(f).values():
            s.add(tuple(i))
        if len(json.load(f).values()) != len(s):
            print("doppelte werte")
    print(s)
Benutzeravatar
__blackjack__
User
Beiträge: 14050
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Fire Spike: Wenn Du etwas aus einer offenen Datei liest, dann ist danach der Dateizeiger hinter den gelesenen Daten. Die kann man also nicht einfach wieder lesen ohne den Dateizeiger wieder an den Anfang der Daten zu setzen. Wobei es aber sowieso nicht wirklich schlau ist die Datei zwei mal zu lesen wenn man das auch *einmal* machen könnte.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten