• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak napisać "od do", python listy

Object Storage Arubacloud
+2 głosów
306 wizyt
pytanie zadane 26 marca 2022 w Python przez koleś34 Gaduła (3,270 p.)

Konkretnie chodzi o argumenty. Jak napisać "jeżeli jakiś argument od -1 do -3" i wiem że mogę napisać

if argv[-1] == "argument" or argv[-2] == "argument" or argv[-3] == "argument":

ale chodzi mi żeby to jakoś normalnie prościej napisać.

1 odpowiedź

+2 głosów
odpowiedź 26 marca 2022 przez adrian17 Ekspert (344,860 p.)
wybrane 26 marca 2022 przez koleś34
 
Najlepsza

Jeśli chcesz napisać "czy tekst jest w liście" to:

if "argument" in argv:

jeśli chcesz napisać "czy tekst jest jednym z trzech ostatnich elementów listy" to tak samo, tylko z końcówką listy:

if "argument" in argv[-3:]

W ogólności, listy można dowolnie ciąć (zakładając że indeksy nie wychodzą poza zakres):

lista[5]
lista[2:]
lista[:3]
lista[2:4]
lista[-3:]
lista[:-3]
lista[0:10:2] # co drugi
lista[::2] # caly zakres, co drugi
lista[::-2] # caly zakres, co drugi od tylu

Natomiast podkreślę tylko, że jak chcesz się bawić w parsowanie standardowych tekstowych argumentów (w dowolnej kolejności etc, jak `./program --cos 1 --inny 55`), to biblioteka standardowa ma narzędzie do automatycznego obsługiwania tego, argparse: https://docs.python.org/3/library/argparse.html

komentarz 26 marca 2022 przez koleś34 Gaduła (3,270 p.)
a wiesz jak w tym argparse zrobić sam argument bez żadnej wartości?
komentarz 26 marca 2022 przez adrian17 Ekspert (344,860 p.)
Co masz na myśli przez "argument bez wartości"?

Może lepiej daj przykład, jak chcesz żeby to docelowo wyglądało?
komentarz 26 marca 2022 przez koleś34 Gaduła (3,270 p.)

sam argument np. taki przykład z windowsa

ipconfig /all

 

komentarz 26 marca 2022 przez adrian17 Ekspert (344,860 p.)

W standardowym stylu argumenty są z myślnikami, a do ustawiania flag jest akcja store_true, więc na przykład:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--blue', action='store_true')
parser.add_argument('--red', action='store_true')
parser.add_argument('--green', action='store_true')
args = parser.parse_args()

print(args.blue, args.red, args.green)

Wtedy działa na przykład tak:

$ python3 main.py --green --blue
True False True
$ python3 main.py --help
usage: main.py [-h] [--blue] [--red] [--green]

optional arguments:
  -h, --help  show this help message and exit
  --blue
  --red
  --green

 

Podobne pytania

+1 głos
1 odpowiedź 2,050 wizyt
0 głosów
4 odpowiedzi 2,429 wizyt
pytanie zadane 14 lutego 2018 w Python przez 1mSnajper Początkujący (300 p.)
0 głosów
2 odpowiedzi 225 wizyt
pytanie zadane 6 listopada 2022 w Python przez Ichbinda Nowicjusz (230 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...