Table des matières
Somme de tuple traditionnelle
Exemple de sommation de tuples traditionnel
Somme absolue des tuples
Exemple de somme de tuple absolue
Gérer des tuples de différentes longueurs
Exemple d'utilisation
Gestion des erreurs d'entrée invalide
Exemple de gestion des erreurs pour une entrée invalide
Fonction qui généralise plusieurs tuples
Fonction qui généralise l'exemple de tuple
Considérations relatives aux performances
Exemple de considérations en matière de performances
Conclusion
Maison développement back-end Tutoriel Python Somme absolue de tuples en Python

Somme absolue de tuples en Python

Sep 12, 2023 pm 07:37 PM
绝对值 求和 tuple

Somme absolue de tuples en Python

En Python, un tuple est une séquence immuable qui peut stocker plusieurs éléments de types différents. Ils sont souvent utilisés pour représenter des collections de valeurs liées. La sommation de tuples consiste à ajouter les éléments correspondants de deux ou plusieurs tuples pour produire un nouveau tuple. Cependant, dans certains scénarios, il peut être nécessaire de calculer la somme absolue des éléments au lieu de la somme traditionnelle. Dans cet article de blog, nous explorerons comment effectuer des sommes absolues de tuples en Python.

Somme de tuple traditionnelle

Avant de nous plonger dans les sommes absolues de tuples, comprenons d'abord comment effectuer des sommes de tuples traditionnelles. Étant donné deux tuples de même longueur, nous pouvons utiliser une simple boucle Python ou une compréhension de liste pour calculer la somme des éléments correspondants

def tuple_sum(t1, t2):
   return tuple(a + b for a, b in zip(t1, t2))
Copier après la connexion

Exemple de sommation de tuples traditionnel

t1 = (2, -4, 6)
t2 = (-1, 3, 5)
result = tuple_sum(t1, t2)
print(result)  # Output: (1, -1, 11)
Copier après la connexion

Dans le code ci-dessus, la fonction zip associe les éléments de t1 et t2, et la compréhension de liste calcule la somme de chaque paire d'éléments. La valeur résultante est ensuite reconvertie en tuple à l’aide de la fonction tuple().

Somme absolue des tuples

La sommation absolue de tuples consiste à prendre la valeur absolue de la somme des éléments correspondants dans deux ou plusieurs tuples. Pour ce faire, on peut modifier le code précédent en ajoutant la fonction abs()

def absolute_tuple_sum(t1, t2):
   return tuple(abs(a + b) for a, b in zip(t1, t2))
Copier après la connexion

Exemple de somme de tuple absolue

t1 = (2, -4, 6)
t2 = (-1, 3, 5)
result = absolute_tuple_sum(t1, t2)
print(result)  # Output: (1, 7, 11)
Copier après la connexion
La fonction

abs() calcule la valeur absolue d'un nombre, garantissant que le résultat est toujours non négatif.

Gérer des tuples de différentes longueurs

Dans certains cas, nous souhaiterons peut-être calculer la somme absolue de tuples de différentes longueurs. Une approche consiste à tronquer le tuple le plus long à une longueur qui correspond au tuple le plus court. Nous pouvons y parvenir en utilisant la fonction itertools.zip_longest(), qui remplit les éléments manquants avec une valeur par défaut (0 dans ce cas)

from itertools import zip_longest

def absolute_tuple_sum(t1, t2):
   return tuple(abs(a + b) for a, b in zip_longest(t1, t2, fillvalue=0))
Copier après la connexion
La fonction

zip_longest() garantit que l'itération s'arrête lorsque le tuple le plus long est épuisé, en remplaçant tous les éléments manquants par des 0. De cette façon, le calcul de la somme absolue fonctionne toujours.

Exemple d'utilisation

Voyons la sommation absolue des tuples en action avec quelques exemples −

t1 = (2, -4, 6)
t2 = (-1, 3, 5)
result = absolute_tuple_sum(t1, t2)
print(result)  # Output: (1, 7, 11)

t3 = (1, 2, 3, 4)
t4 = (5, 6, 7)
result = absolute_tuple_sum(t3, t4)
print(result)  # Output: (6, 8, 10, 4)
Copier après la connexion

Dans le premier exemple, les éléments correspondants de t1 et t2 sont ajoutés, ce qui donne le tuple (1, 7, 11). Le deuxième exemple montre la gestion de tuples de différentes longueurs. Le tuple le plus long t3 est tronqué pour correspondre à la longueur de t4, ce qui donne le tuple (6, 8, 10, 4).

Gestion des erreurs d'entrée invalide

Lors de l'exécution de sommes absolues de tuples, il est important de gérer les cas où les tuples d'entrée sont de longueurs différentes ou ne sont pas des tuples valides. Une approche consiste à vérifier la longueur des tuples avant d'effectuer la somme et à déclencher une exception s'ils sont incompatibles. De plus, vous pouvez ajouter des vérifications pour vous assurer que les valeurs d'entrée sont bien des tuples. L'exemple suivant montre comment intégrer la gestion des erreurs dans votre code

def absolute_tuple_sum(t1, t2):
   if not isinstance(t1, tuple) or not isinstance(t2, tuple):
      raise TypeError("Inputs must be tuples.")
   if len(t1) != len(t2):
      raise ValueError("Tuples must have the same length.")

   return tuple(abs(a + b) for a, b in zip_longest(t1, t2, fillvalue=0))
Copier après la connexion

Exemple de gestion des erreurs pour une entrée invalide

t5 = (1, 2, 3)
t6 = (4, 5, 6, 7)
result = absolute_tuple_sum(t5, t6)  # Raises ValueError: Tuples must have the same length.

t7 = [1, 2, 3]
t8 = (4, 5, 6)
result = absolute_tuple_sum(t7, t8)  # Raises TypeError: Inputs must be tuples.
Copier après la connexion

Fonction qui généralise plusieurs tuples

L'exemple présenté dans l'article de blog se concentre sur le calcul de la somme absolue de deux tuples. Cependant, cette fonction peut être facilement généralisée pour gérer plusieurs tuples. En utilisant l'argument *args dans une définition de fonction, vous pouvez transmettre n'importe quel nombre de tuples comme arguments et calculer leur somme absolue. Vous trouverez ci-dessous une version mise à jour de la fonction

def absolute_tuple_sum(*tuples):
   if any(not isinstance(t, tuple) for t in tuples):
      raise TypeError("All inputs must be tuples.")
   if len(set(len(t) for t in tuples)) != 1:
      raise ValueError("All tuples must have the same length.")

   return tuple(abs(sum(elements)) for elements in zip_longest(*tuples, fillvalue=0))
Copier après la connexion

Fonction qui généralise l'exemple de tuple

t9 = (1, 2, 3)
t10 = (4, 5, 6)
t11 = (7, 8, 9)
result = absolute_tuple_sum(t9, t10, t11)
print(result)  # Output: (12, 15, 18)
Copier après la connexion

Cette fonction modifiée vous permet de calculer la somme absolue de tuples de n'importe quel nombre de tuples en passant simplement les tuples comme arguments à la fonction.

Considérations relatives aux performances

Les performances peuvent devenir un problème lorsqu'il s'agit de grands tuples ou d'un grand nombre de tuples. Dans ce cas, il peut être plus efficace d’utiliser NumPy, une puissante bibliothèque de calcul numérique en Python. NumPy fournit des fonctions optimisées pour les opérations sur les tableaux, y compris la sommation des valeurs absolues par élément. En convertissant les tuples en tableaux NumPy, vous pouvez profiter de ces fonctions d'optimisation, obtenant potentiellement de meilleures performances. Voici un exemple montrant comment exploiter NumPy

import numpy as np

def absolute_tuple_sum(*tuples):
   if any(not isinstance(t, tuple) for t in tuples):
      raise TypeError("All inputs must be tuples.")
   if len(set(len(t) for t in tuples)) != 1:
      raise ValueError("All tuples must have the same length.")

   arrays = [np.array(t) for t in tuples]
   result = np.sum(arrays, axis=0)
   return tuple(np.abs(result))
Copier après la connexion

Exemple de considérations en matière de performances

t12 = tuple(range(1000000))  # A large tuple of size 1,000,000
t13 = tuple(range(1000000, 0, -1))  # Another large tuple with elements in reverse order

result = absolute_tuple_sum(t12, t13)
print(result)  # Output: (999999, 999999, 999999, ..., 999999) (a tuple of all 999999's)

# Using NumPy for performance optimization
import numpy as np

t12_np = np.array(t12)
t13_np = np.array(t13)

result_np = np.abs(t12_np + t13_np)
print(tuple(result_np))  # Output: (999999, 999999, 999999, ..., 999999) (same as the previous output)
Copier après la connexion

En tirant parti de NumPy, vous pouvez souvent améliorer considérablement les performances des calculs à grande échelle.

Conclusion

Nous avons exploré le concept de sommes absolues de tuples en Python. Nous avons appris à calculer la somme absolue des éléments correspondants dans deux tuples ou plus. Les extraits de code fournis démontrent la sommation traditionnelle des tuples, la gestion des tuples de différentes longueurs et la gestion des erreurs en cas d'entrée non valide. Nous discutons également de la généralisation de la fonction pour prendre en charge plusieurs tuples et envisageons des optimisations de performances pour les calculs à grande échelle à l'aide de NumPy.

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Somme absolue de tuples en Python Somme absolue de tuples en Python Sep 12, 2023 pm 07:37 PM

Somme absolue de tuples en Python

Comment trouver la valeur absolue en python Comment trouver la valeur absolue en python Jun 08, 2023 am 09:49 AM

Comment trouver la valeur absolue en python

Savez-vous comment résumer un tableau Word ? Savez-vous comment résumer un tableau Word ? Mar 21, 2024 pm 01:10 PM

Savez-vous comment résumer un tableau Word ?

Comment trouver la valeur absolue en python Comment trouver la valeur absolue en python Aug 23, 2023 am 10:58 AM

Comment trouver la valeur absolue en python

Comment trouver la valeur absolue en langage Go Comment trouver la valeur absolue en langage Go Jun 04, 2021 pm 03:38 PM

Comment trouver la valeur absolue en langage Go

Comment obtenir la valeur absolue en utilisant la fonction ABS dans MySQL Comment obtenir la valeur absolue en utilisant la fonction ABS dans MySQL Jul 13, 2023 am 10:18 AM

Comment obtenir la valeur absolue en utilisant la fonction ABS dans MySQL

Programme Python pour imprimer les clés et valeurs d'un tuple Programme Python pour imprimer les clés et valeurs d'un tuple Aug 31, 2023 pm 04:33 PM

Programme Python pour imprimer les clés et valeurs d'un tuple

En langage C, la valeur absolue d'un nombre négatif est un nombre positif En langage C, la valeur absolue d'un nombre négatif est un nombre positif Aug 30, 2023 am 10:41 AM

En langage C, la valeur absolue d'un nombre négatif est un nombre positif

See all articles