Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
Praca z listami i innymi iterowalnymi obiektami jest częstym zadaniem w programowaniu w Pythonie . Czasami może być konieczne przechodzenie przez te iterowalne pętle, jednocześnie śledząc indeks lub liczbę bieżącego elementu. W tym miejscu z pomocą przychodzi wbudowana w Pythona funkcja enumerate().
Funkcja enumerate() w Pythonie zapewnia wygodny sposób uzyskiwania dostępu zarówno do indeksu elementu, jak i do samego elementu, gdy przeglądasz listę lub dowolny obiekt iterowalny.
Ta funkcja sprawia, że Twój kod jest bardziej Pythoniczny , czytelny i wydajny. Pozwala przeglądać elementy w pętli i pobierać zarówno ich indeks, jak i wartość. Zamiast ręcznie inicjować i zwiększać licznik w pętli, możesz polegać na enumerate(), która zrobi to za Ciebie.
W tym artykule dowiesz się o wbudowanej funkcji Pythona enumerate(), jej znaczeniu w kodzie Pythona i przypadkach jej użycia.
Wejdźmy w to!
Spis treści
Co to jest funkcja wyliczania Pythona?
Wyobraź sobie, że pracujesz ze strukturą danych listy i chcesz coś zrobić z każdym elementem, ale musisz też znać pozycję elementu na liście.
Bez Pythona enumerate() możesz zdecydować się na użycie zmiennej licznika, którą zwiększasz w każdej iteracji pętli. Ale takie podejście może być podatne na błędy i nie jest zbyt „pythoniczne”.
Enumerate to wbudowana funkcja w Pythonie, która umożliwia iterację po iterowalnych obiektach, jednocześnie śledząc indeks bieżącego elementu.
Teraz, gdy już wiesz, czym jest funkcja enumerate() w Pythonie, przejdźmy do składni funkcji enumerate() w następnym podrozdziale!
Jaka jest składnia funkcji wyliczania Pythona?
Składnia funkcji określa, w jaki sposób należy jej używać w kodzie, w tym jakie argumenty przyjmuje i co zwraca.
Funkcja enumerate () ma następującą składnię:
enumerate(, start=0)
: Jest to wymagany parametr i może to być dowolny iterowalny Python, taki jak lista lub krotka.
start : Ten drugi parametr jest parametrem opcjonalnym, który określa początkową wartość licznika. Domyślnie jest ustawiony na 0.
Wartość zwracana przez funkcję enumerate() jest obiektem enumerate, który jest iteratorem posiadającym pary (indeks, element) dla każdego elementu w danej iterowalności.
Możesz użyć tego iteratora w pętli for, aby uzyskać jednocześnie dostęp zarówno do indeksu, jak i elementu.
Poniższy przykład pokazuje, jak można użyć funkcji enumerate() z listą:
fruits = ['apple', 'banana', 'cherry']
for index, item in enumerate(fruits):
print(index, item)
W tym przykładzie enumerate() przechodzi przez obiekty enumerate, tj. listę owoców , i przypisuje indeks do każdego elementu, zaczynając od 0.
Następnie pętla for rozpakowuje indeks i element z wyliczonego obiektu. Umożliwia to wykonywanie operacji na podstawie zarówno indeksu, jak i wartości elementu.
Używamy funkcji print, aby wydrukować indeks i element na ekranie. Wyjście kodu pokazano na poniższym obrazku:
Na wyjściu widać, że początkowym indeksem jest 0. Jest to domyślna wartość indeksu przypisywana automatycznie przez interpreter Pythona.
Możesz jednak określić inną wartość początkową dla licznika, podając opcjonalny parametr start , jak pokazano w poniższym kodzie:
for index, item in enumerate(fruits, start=1):
print(index, item)
Wynik będzie podobny do powyższego. Jedyną różnicą będzie to, że indeks zaczyna się teraz od 1.
Teraz masz już pojęcie o składni funkcji enumerate() w Pythonie. Ale, jak w przypadku każdego narzędzia, ważne jest, aby wiedzieć, kiedy i gdzie go używać.
Dlatego w następnej sekcji przyjrzymy się kilku typowym przypadkom użycia funkcji enumerate()!
5 Przypadki użycia funkcji enumerate w Pythonie
Funkcja enumerate w Pythonie jest szeroko stosowana w scenariuszach, w których zarówno indeks, jak i wartość obiektu iterowalnego mają znaczenie dla programisty.
Poniżej wymieniliśmy niektóre typowe przypadki użycia funkcji wyliczających w Pythonie.
1. Jak używać Enumerate z listami Pythona
W Pythonie lista jest wbudowaną strukturą danych, która umożliwia przechowywanie wielu elementów w jednej zmiennej. Pomyśl o liście jako o pojemniku, w którym możesz umieścić różne przedmioty, a one zachowają swoją kolejność.
Funkcji enumerate() można używać na listach na różne sposoby, na przykład:
A. Dostęp do elementów listy i ich indeksów za pomocą Pythona Enumerate
Jednym z najczęstszych przypadków użycia funkcji enumerate() jest konieczność uzyskania dostępu zarówno do elementów listy, jak i do ich indeksów. Enumerate pozwala to zrobić w czysty i wydajny sposób.
Poniżej znajduje się przykład uzyskiwania dostępu do elementów listy i ich indeksów:
fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
for index, fruit in enumerate(fruits):
print(f"At index {index}, the fruit is {fruit}.")
Dane wyjściowe tego kodu przedstawiono na poniższym obrazku:
B. Modyfikowanie elementów listy za pomocą Pythona Enumerate
Kiedy musisz zmodyfikować elementy listy na podstawie ich indeksu, enumerate() jest doskonałym narzędziem. Możesz uzyskać dostęp do indeksu w pętli i użyć go do zmodyfikowania listy.
Poniżej znajduje się przykład modyfikowania elementów listy za pomocą funkcji enumerate:
numbers = [1, 2, 3, 4, 5]
for i, num in enumerate(numbers):
numbers[i] = num * 2
Ten kod Pythona tworzy listę liczb od 1 do 5. Następnie używa pętli for i funkcji enumerate() do iteracji po liście.
Dla każdej iteracji mnoży bieżącą liczbę (liczba) przez 2 i ponownie przypisuje ją do tej samej pozycji na liście (liczby [i]).
W rezultacie każda liczba na oryginalnej liście jest podwojona, jak pokazano na poniższym obrazku:
C. Porównywanie elementów na dwóch listach za pomocą Pythona Enumerate
Jeśli porównujesz elementy na dwóch różnych listach, enumerate() może dostarczyć indeks potrzebny do uzyskania dostępu do elementów na obu listach w tym samym czasie.
Poniżej znajduje się przykład użycia funkcji enumerate do porównania elementów na dwóch listach:
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 0, 5]
for i, value in enumerate(list1):
if value != list2[i]:
print(f"Difference at index {i}: {value} (list1) vs {list2[i]} (list2)")
W tym kodzie najpierw definiujemy dwie listy, list1 i list2. Następnie przechodzimy przez listę1, używając pętli for z funkcją enumerate(), która dostarcza indeks (i) i wartość każdego elementu.
Jeśli bieżący element na liście 1 nie pasuje do odpowiedniego elementu na liście 2, drukuje indeks różnicy i różne wartości z obu list.
Wynik tego kodu pokazano poniżej:
2. Jak używać Enumerate z krotkami Pythona
Krotka w Pythonie to uporządkowany zbiór elementów, podobny do listy. Jedyna różnica polega na tym, że krotka jest niezmienna, co oznacza, że nie można zmienić jej zawartości po utworzeniu.
Poniżej przedstawiono niektóre przypadki, w których można użyć enumerate z krotkami Pythona.
A. Używanie Pythona Enumerate() do znajdowania elementu w krotce
Gdy mamy do czynienia z krotkami w Pythonie, często trzeba sprawdzić, czy element istnieje w krotce.
Poniższy przykładowy kod demonstruje użycie enumerate do znalezienia elementów w krotce:
fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
for i, fruit in enumerate(fruits):
if fruit == 'mango':
print(f"'mango' found at position {i}")
Ten kod wypisze „mango” znalezione na pozycji 2”, ponieważ „mango” znajduje się na indeksie 2 w krotce.
B. Używanie Pythona Enumerate() do tworzenia słownika z krotki
Jeśli masz krotkę i chcesz przekształcić ją w słownik, funkcja enumerate() Pythona może być Twoim podstawowym narzędziem.
Przykładowy kod pokazuje, jak można utworzyć słownik z krotki za pomocą enumerate:
fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)
Ten kod wydrukuje słownik, w którym klucze to indeksy, a wartości to elementy z krotki.
3. Jak używać Enumerate ze słownikami Pythona
W Pythonie słownik jest zmiennym, nieuporządkowanym zbiorem par klucz-wartość , w którym każdy klucz musi być unikalny. Pomyśl o tym jak o prawdziwym słowniku: wyszukujesz słowo (klucz) i uzyskujesz jego definicję (wartość).
Poniżej przedstawiono niektóre przypadki, w których można użyć enumerate ze słownikami Pythona:
A. Zapętlanie kluczy i wartości słownika
Możesz użyć funkcji enumerate() do przeglądania kluczy i wartości słownika.
Funkcja enumerate() dodaje licznik do obiektu iterowalnego (takiego jak słowniki), umożliwiając dostęp do bieżącej wartości indeksu.
Przykład funkcji enumerate ze słownikiem Pythona podano poniżej:
example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, k in enumerate(example_dict):
print(i, k)
W tym kodzie Pythona najpierw tworzymy słownik o nazwie example_dict. Następnie używamy funkcji enumerate() do iteracji po słowniku.
Dla każdej iteracji wypisujemy liczbę pętli (podaną przez i i zaczynającą się od 0) oraz bieżący klucz (czyli k) ze słownika.
B. Połączenie Pythona Enumerate z funkcją Items
Możesz także uzyskać dostęp zarówno do kluczy, jak i wartości słownika za pomocą funkcji items() razem z enumerate() . Funkcja items () zwraca iterowalną kolekcję par klucz-wartość w postaci krotek.
Poniższy przykład pokazuje, w jaki sposób można użyć funkcji items() z enumerate() :
example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, (k, v) in enumerate(example_dict.items()):
print(i, k, v)
W tym kodzie tworzymy słownik o nazwie example_dict , a następnie używamy funkcji enumerate() do iteracji par klucz-wartość słownika. Podczas każdej iteracji drukujemy indeks pętli „i”, bieżący klucz „k” i odpowiadającą mu wartość „v”.
Masz teraz solidne zrozumienie, jak używać funkcji enumerate() Pythona w niektórych typowych scenariuszach. Ale enumerate() ma jeszcze więcej do zaoferowania.
Przyjrzyjmy się niektórym zaawansowanym przypadkom użycia związanym z enumerate() w następnej sekcji!
3 zaawansowane przypadki użycia Pythona Enumerate
W tej sekcji wyjdziemy poza podstawy i przyjrzymy się niektórym zaawansowanym przypadkom użycia funkcji enumerate w Pythonie.
Omówimy następujące przypadki użycia:
Używanie Enumerate z klasami Pythona
Używanie Enumerate z klasami Enum
Używanie Enumerate do odwracania zamówień
Wejdźmy w to!
1. Używanie Enumerate z klasami Pythona
Podczas swojej przygody z programowaniem w Pythonie możesz natknąć się na sytuacje, w których chcesz użyć enumerate z niestandardowymi klasami.
Aby to osiągnąć, twoja klasa powinna zaimplementować metodę iter() , która umożliwia iterację.
Rozważmy klasę Color , która przechowuje nazwy kolorów i powiązane z nimi wartości szesnastkowe:
class Color:
def __init__(self, colors: dict):
self.colors = colors
def __iter__(self):
return iter(self.colors.items())
colors = Color({"red": "#FF0000", "green": "#00FF00", "blue": "#0000FF"})
for index, (name, hex_value) in enumerate(colors):
print(f"{index}: {name} => {hex_value}")
W tym kodzie tworzymy klasę Color, która pobiera słownik nazw kolorów i odpowiadających im wartości szesnastkowych.
Kiedy używasz enumerate() w pętli, udostępnia ona indeks wraz z każdą parą klucz-wartość. Pozwala to na wydrukowanie indeksu, nazwy koloru i jego wartości szesnastkowej w sformatowanym łańcuchu.
2. Używanie Pythona Enumerate z klasami Enum
Python ma wbudowaną klasę Enum , która umożliwia tworzenie typów wyliczeniowych z automatycznie przypisywanymi wartościami całkowitymi.
Na przykład spójrz na następujący kod:
from enum import Enum, auto
class Direction(Enum):
NORTH = auto()
EAST = auto()
SOUTH = auto()
WEST = auto()
for index, direction in enumerate(Direction):
print(f"{index}: {direction.name} => {direction.value}")
W tym skrypcie definiujemy Kierunek wyliczenia z czterema elementami (PÓŁNOC, WSCHÓD, POŁUDNIE i ZACHÓD) za pomocą modułu enum Pythona. Funkcja auto() przypisuje automatycznie wartość każdemu członowi.
Kiedy używasz enumerate() w pętli, udostępnia ona indeks wraz z każdym elementem wyliczenia. Pozwala to wydrukować indeks, nazwę członka i jego automatycznie przypisaną wartość w sformatowanym ciągu.
Dane wyjściowe tego kodu przedstawiono na poniższym obrazku:
3. Używanie Pythona Enumerate do odwracania kolejności
W niektórych przypadkach możesz chcieć wyliczyć elementy w odwrotnej kolejności. Możesz to osiągnąć, używając wbudowanej funkcji reversed() w połączeniu z enumerate() .
Poniższy przykład ilustruje wyliczanie elementów w odwrotnej kolejności:
my_list = ["apple", "banana", "cherry"]
for index, item in enumerate(reversed(my_list)):
print(f"{index}: {item}")
W tym kodzie iterujemy nad odwróconą wersją my_list za pomocą enumerate(). Zapewnia to indeks i pozycję z odwróconej listy w każdej iteracji. Pozwala wydrukować indeks i element w sformatowanym ciągu.
Funkcja reversed() nie zmodyfikuje oryginalnej sekwencji; tworzy nowy iterator, który przedstawia elementy w odwrotnej kolejności.
Aby dowiedzieć się więcej o funkcjach w Pythonie, obejrzyj poniższy film:
Końcowe przemyślenia
Kontynuując swoją przygodę z Pythonem, opanowanie funkcji enumerate() jest koniecznością. To narzędzie poprawiające czytelność i wydajność kodu.
Używając enumerate(), możesz bezproblemowo uzyskać dostęp zarówno do indeksu, jak i wartości w swoich pętlach, zmniejszając potrzebę stosowania zmiennych liczników lub indeksowania. Upraszcza twój kod i czyni go bardziej Pythonowym.
Niezależnie od tego, czy przeglądasz listy, krotki, łańcuchy znaków czy słowniki, enumerate() okaże się cennym narzędziem. Dzięki zrozumieniu i ćwiczeniu enumerate() zrobisz znaczący krok w doskonaleniu swoich umiejętności programowania w Pythonie!
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.
Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.
Czym jest self w Pythonie: przykłady z życia wzięte
Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.
Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.
W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.
W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.
Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.
Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.