Maison  >  Article  >  développement back-end  >  Comment compresser des tuples inégaux en Python

Comment compresser des tuples inégaux en Python

WBOY
WBOYavant
2023-08-30 11:09:121358parcourir

Comment compresser des tuples inégaux en Python

Présentation

En Python, les tuples sont l'une des méthodes largement utilisées pour stocker et traiter les données selon les besoins. De nombreuses opérations sont impliquées dans les tuples, où les données sont prétraitées et transformées selon les exigences de l'énoncé du problème. L’opération de compression est l’une des opérations les plus courantes et les plus utilisées pour compresser différents tuples.

Dans cet article, nous discuterons de la compression de tuples inégaux en Python, de ce que signifie réellement la compression de tuples inégaux et des différentes façons d'effectuer la même opération grâce à l'explication du code. Cet article aidera les gens à comprendre l'idée principale de la compression de tuples inégaux et les aidera à faire de même si nécessaire.

Parlons maintenant d'abord de la signification de la compression en Python et de la compression inégale des tuples en Python.

Qu'est-ce que la compression de tuples non uniforme ?

En Python, le mot zip ou zipping signifie que nous ajoutons les éléments de différents tuples, cela signifie que nous créons une paire d'éléments de différents tuples et les stockons dans un seul tuple commun.

Par exemple, si nous avons deux tuples comme celui-ci :

T1 = (1, 2, 3)

T2 = (« un », « deux », « trois »)

Ensuite, effectuer une opération de compression sur ces tuples donnera le résultat suivant :

T_Zip = ((, "un"), (2, "deux"), (3, "trois"))

Le tuple inégal signifie ici que la taille ou la longueur des deux tuples n'est pas la même, c'est-à-dire que la taille d'un tuple est plus petite ou plus grande que celle de l'autre tuple. L'opération de compression est une tâche très simple pour des tuples de même taille ou longueur, mais devient très complexe lors de la compression de deux tuples de tailles différentes ou de manière inégale.

Cependant, il existe des moyens de compresser deux tuples inégaux. Discutons-en un par un.

Compresser les tuples inégaux

En Python, nous utilisons principalement trois façons de compresser des tuples inégaux.

  • Utiliser For pour les boucles et les énumérations

  • Utiliser la compréhension de liste

  • Utiliser la bibliothèque Numpy

Méthode 1 : Utiliser les boucles For et les énumérations

Nous pouvons utiliser des boucles for et des fonctions d'énumération pour compresser des tuples inégaux. C’est l’un des moyens les plus simples et les plus efficaces de procéder côté client.

# using for loop and enumerate 

# define the tuples
test_tup1 = (7, 8, 4, 5)
test_tup2 = (1, 5, 6)

# print the input tuples
print("The input  tuple 1 is : " + str(test_tup1))
print("The input  tuple 2 is : " + str(test_tup2))

res = []


# use for loop with enumerate 
for i, j in enumerate(test_tup1):
  res.append((j, test_tup2[i % len(test_tup2)]))

# Print the final resultant tuple after zipping tuple 1 and 2
print("The output zipped tuple from tuple 1 and 2 is : " + str(res))

Comme nous pouvons le voir dans le code ci-dessus, les tuples 1 et 2 sont rejetés par () et ils n'ont pas la même taille ou longueur.

Maintenant, la boucle for est utilisée avec une énumération qui ajoute les éléments tuple1 et tuple2 et donne la sortie au format tuple.

Sortie

La sortie du code suivant est :

The input tuple 1 is : (7, 8, 4, 5) 
The input tuple 2 is : (1, 5, 6) 
The output zipped tuple from tuple 1 and 2 is : [(7, 1), (8, 5), (4, 6), (5, 1)]

Méthode 2 : Utiliser la compréhension de liste

Vous pouvez également utiliser une compréhension de liste pour compresser deux tuples inégaux. L'opérateur ternaire peut être utilisé ici.

# using list comprehension

# define the tuples 
tup1 = (7, 8, 4, 5)
tup2 = (1, 5, 6)

# print the input tuples 
print("The input tuple 1 is : " + str(tup1))
print("The input tuple 2 is : " + str(tup2))

# define if else conditions
res = [(tup1[i], tup2[i % len(tup2)])
  if len(tup1) > len(tup2)

  else (tup1[i % len(tup1)], tup2[i])

  # use for loop on tuple 1 and 2
  for i in range(max(len(tup1), len(tup2)))]

#Print the final resultant tuple after zipping tuple 1 and 2
print(" The output zipped tuple from tuple 1 and 2 is :" + str(res))

Comme nous pouvons le voir dans le code ci-dessus, deux tuples de tailles différentes sont définis, puis la condition if else est écrite où d'abord la longueur des tuples est vérifiée et enfin la boucle for ajoute les deux tuples et renvoie la sortie.

Sortie

La sortie du code suivant est :

The input tuple 1 is : (7, 8, 4, 5) 
The input tuple 2 is : (1, 5, 6) 
The output zipped tuple from tuple 1 and 2 is : [(7, 1), (8, 5), (4, 6), (5, 1)]

Méthode 3 : Utiliser la bibliothèque Numpy

Numpy est l'une des bibliothèques les plus utilisées pour effectuer des opérations sur les données. Ici, en utilisant des données au format tableau, nous pouvons faire presque n'importe quoi et utiliser numpy pour convertir les données en n'importe quoi.

#using numpy module to zip the uneven tuples 

# Importing the numpy module
import numpy as np

# define the tuples
test_tup1 = (7, 8, 4, 5)
test_tup2 = (1, 5, 6)

# convert the tuples into array format
arr1 = np.array(test_tup1)
arr2 = np.array(test_tup2)

# use np.tile 
arr2_tiled = np.tile(arr2, (len(arr1) // len(arr2) + 1))[:len(arr1)]

#use column_stack on array 1 and tiled array 2 to zip the tuples 
res_arr = np.column_stack((arr1, arr2_tiled))

# convert the array output to the tuple
res = tuple(map(tuple, res_arr))

# Print the final resultant tuple after zipping tuple 1 and 2
print("The output zipped tuple from tuple 1 and 2 is : " + str(res))

Comme nous pouvons le voir dans le code ci-dessus, nous avons d'abord importé la bibliothèque numpy puis défini deux tuples de tailles différentes.

Ensuite, comme mentionné ci-dessus, la bibliothèque numpy nécessite que les données au format tableau gèrent la même chose, donc le tuple est transmis à np.array qui convertit les données au format tableau.

Une fois que nous avons le tuple sous forme de tableau, np.column_stack est utilisé pour ajouter les éléments du tableau et le tuple est compressé.

Convertissez ensuite à nouveau le tableau final en tuple à l'aide de la fonction tuple().

Sortie

La sortie du code suivant est :

The output zipped tuple from tuple 1 and 2 is : ((7, 1), (8, 5), (4, 6), (5, 1))

Conclusion

Dans cet article, nous avons abordé l'opération de compression de deux tuples inégaux ou de deux tuples de tailles (longueurs) différentes. Les trois manières différentes de compresser des tuples inégaux évoquées ci-dessus aideront à comprendre l'opération de compression et à l'effectuer si nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer