Glavni problem sa permutacijom uparivanja u Pythonu je taj što nije efikasna.
I have a list of integers, and I want to pairwise permute them in all possible ways. For example, if the input is [1,2,3], the output should be [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]. How can I do this in Python? A: You can use <code>itertools.permutations</code>: <code>>>> from itertools import permutations >>> list(permutations([1, 2], 2)) # for your example input [1, 2] [(1, 2), (2, 1)] # output is a generator object which you can convert to a list as shown above. </code>
Ako želite to učiniti za sve moguće unose, možete koristiti razumijevanje liste:
>>> from itertools import permutations
>>> [list(permutations([1, 2, 3], 2))] # for your example input [1, 2]
[[(1, 2), (2, 1)], [(1, 3), (3, 1)], [(2, 3), (3, 2)]] # output is a list of generator objects which you can convert to lists as shown above.
Parne kombinacije liste
U Pythonu možete kombinirati dvije liste pomoću + operatora. Prva lista je "lijevi operand", a druga lista je "desni operand".
Na primjer, da kreirate listu parova koja se sastoji od prvog slova svake riječi u tekstualnoj datoteci, možete koristiti sljedeći kod:
text_file = open(“my_text_file.txt”) words = text_file.read().split(” “) print(“Uparene kombinacije riječi u tekstualnoj datoteci:”) za riječ u riječima: ako riječ nije u [“a”, “an”, “the”, “of”]: print(riječ + “,” + str(parovi[riječ]))
Vektorizacija pirwise kombinacija
U Pythonu možete vektorizirati kombinacije pirwise operatora pomoću funkcije vectorized(). Ova funkcija uzima listu torki i vraća listu vektora. Svaki vektor u vraćenoj listi predstavlja jednu kombinaciju pirwise operatora.
Na primjer, sljedeći isječak koda koristi funkciju vectorized() za kreiranje liste vektora koji predstavljaju sve moguće kombinacije + i – operacija:
vektorizirano = [] za i u rasponu (1, 10): vektorizirano.dodati(vektorizirano[i] + vektorizirano[i – 1])