Salut à tous,
J'aimerais faire un XOR entre tous les élements de ma liste , mais je ne sais pas comment m'y prendre.
Je suis parti sur un for in, mais je ne trouve pas la syntaxe pour faire ce que je veux.
Merci d'avance :)
Version imprimable
Salut à tous,
J'aimerais faire un XOR entre tous les élements de ma liste , mais je ne sais pas comment m'y prendre.
Je suis parti sur un for in, mais je ne trouve pas la syntaxe pour faire ce que je veux.
Merci d'avance :)
Bonjour
un len(filter(...)) == 1 ?
Code:new_list = [a[i]^a[i+1] for i in range(len(my_list)-1)]
Bonjour ,
Merci de vos réponses, cependant, mon but est d'avoir ce résultat :
7^7^0^0 = 12 (oui c'est faux, c'est juste pour l'exemple)
Or dans les solutions que vous me proposé, je n'obtient pas ce résultat mais seulement le XOR entre un valeur et sa suivante
Bonjour,
avec Python2, on peut faire comme ça :
et avec Python3, comme ça :Code:
1
2
3
4
5
6 #!/usr/bin/python # -*- coding: utf-8 -*- liste = [7, 3, 1, 3, 7, 12] print reduce(lambda x,y:x^y, liste)
c'est un peu feignasse comme méthode, mais ça fonctionne. ;)Code:
1
2
3
4
5
6
7
8 #!/usr/bin/python3 # -*- coding: utf-8 -*- from functools import reduce liste = [7, 3, 1, 3, 7, 12] print(reduce(lambda x,y:x^y, liste))
@+.
Merci pour votre aide , la première méthode ( j'utilise python 2 ) marche parfaitement.
Rebonjour, mon crc venant de changer je me retrouve dans le même besoin que précédemment
Description du crc :
CRC Order : 8
CRC Polynom : 0x97
reflect_in = False
xor_in = 0x0000,
reflect_out = False,
xor_out = 0x0000
J'ai trouver une lib en python pour appliquer ce CRC avec l'algo bit_by_bit_fast. voici l'utilisation de la lib :
Sur ce code avec la chaîne : 123456789 le résultat doit être 0x94Code:
1
2
3
4
5
6
7
8
9
10
11 This is an example use of the different algorithms: >>> from crc_algorithms import Crc >>> >>> crc = Crc(width = 16, poly = 0x8005, ... reflect_in = True, xor_in = 0x0000, ... reflect_out = True, xor_out = 0x0000) >>> print("0x%x" % crc.bit_by_bit("123456789")) >>> print("0x%x" % crc.bit_by_bit_fast("123456789")) >>> print("0x%x" % crc.table_driven("123456789")) """
J'ai essayer de créer une fonction lambda pour ça mais je sais pas trop comment m'y prendre.
Merci d'avance
Edit :
Trouvé !
Si ça intéresse quelqu'un j'utilise la lib pycrc 0.8.1.
je trouve que c'est très bien implémenté et facile d'utilisation