[informatica] Python List afdrukken zonder brackets wel met quotes

Moderators: ArcherBarry, Fuzzwood

Reageer
Berichten: 1

[informatica] Python List afdrukken zonder brackets wel met quotes

Hallo allemaal,
Ik moet in Python een functie schrijven met één argument(List) van het type string,
deze functie zorgt ervoor dat de string gesorteerd wordt, dat is mij allemaal gelukt zoals u hieronder kunt zien, maar de uitvoer moet tussen aanhalingstekens (single quotes) maar wel zonder brackets.
Ik krijg de uitvoer maar niet tussen single quotes, iemand misschien een idee hoe ik dit kan oplossen?

Alvast bedankt,

Invoer:

def alfabet(arg):
a = arg.split()
a.sort()
a = print(*a)

return a

alfabet("Z V H B A")

Uitvoer: A B H V Z

Gewenste uitvoer: 'A B H V Z'

Gebruikersavatar
Moderator
Berichten: 9.904

Re: Python List afdrukken zonder brackets wel met quotes

Bijvoorbeeld zo:

Code: Selecteer alles

def alfabet(arg):
    a = arg.split()
    a.sort()
    print("'",end='')
    a = print(*a,end="'")
    
    return a

Gebruikersavatar
Moderator
Berichten: 9.904

Re: [informatica] Python List afdrukken zonder brackets wel met quotes

N.B.
"a=print(...)" heeft geen zin, print geeft geen antwoord en a wordt "None".
Daarmee is "return a" ook overbodig/zinloos.

De functie wordt dan

Code: Selecteer alles

def alfabet(arg):
    a = arg.split()
    a.sort()
    print("'",end='')
    print(*a,end="'")
Wil je dat een volgend printopdracht op een nieuwe regel begint, dan wordt het

Code: Selecteer alles

def alfabet(arg):
    a = arg.split()
    a.sort()
    print("'",end='')
    print(*a,end="'\n")

Berichten: 7.068

Re: [informatica] Python List afdrukken zonder brackets wel met quotes

SamySam schreef: vr 29 okt 2021, 11:42Ik moet in Python een functie schrijven met één argument(List) van het type string
Deze zin doet mij vermoeden dat de opdracht net niet is wat jij zegt dat die is (maar dat kan ik natuurlijk ook mishebben). Zou je de oorspronkelijke opdracht kunnen posten?

Berichten: 7.068

Re: [informatica] Python List afdrukken zonder brackets wel met quotes

Ik had naar aanleiding van de oorspronkelijke vraag het volgende bedacht:

Code: Selecteer alles

def sortedCopy(srcList):
    result = srcList.copy()
    result.sort()
    return result

input = ['a', '6', 'zebra', 'appeltaart']
output = sortedCopy(input)

print(f'{input}'[1:-1])
print(f'{output}'[1:-1])
Zoals te zien is, maak ik een kopie van de list. Dit doe ik om te voorkomen dat de oorspronkelijke input aangetast wordt. Weet iemand of er ook een directere methode is (in Python) om dit voor elkaar te krijgen?

Gebruikersavatar
Moderator
Berichten: 9.904

Re: [informatica] Python List afdrukken zonder brackets wel met quotes

Ik weet niet of dit de bedoeling is, alle strings in de list staan nu tussen quotes en zijn gescheiden door komma's.
Maar zolang TS niet vertelt of het argument nu een list of een string is, is een antwoord lastig te geven.

Die manier van printen print(f'input... kende ik nog niet en werkte niet in mijn wat oudere Python versie 3.5.
In versie 3.9 lukte het wel.
EvilBro schreef: di 02 nov 2021, 08:20 Weet iemand of er ook een directere methode is (in Python) om dit voor elkaar te krijgen?
Zo'n methode ken ik niet.

Technicus
Berichten: 1.151

Re: [informatica] Python List afdrukken zonder brackets wel met quotes

Samysam heeft zijn vraag ook ergens anders geplaatst, en daar z'n antwoord gekregen. Ik denk niet dat we die nog terugzien.
https://gathering.tweakers.net/forum/li ... es/2096938

Technicus
Berichten: 1.151

Re: [informatica] Python List afdrukken zonder brackets wel met quotes

EvilBro schreef: di 02 nov 2021, 08:20 Ik had naar aanleiding van de oorspronkelijke vraag het volgende bedacht:

Code: Selecteer alles

def sortedCopy(srcList):
    result = srcList.copy()
    result.sort()
    return result

input = ['a', '6', 'zebra', 'appeltaart']
output = sortedCopy(input)

print(f'{input}'[1:-1])
print(f'{output}'[1:-1])
Zoals te zien is, maak ik een kopie van de list. Dit doe ik om te voorkomen dat de oorspronkelijke input aangetast wordt. Weet iemand of er ook een directere methode is (in Python) om dit voor elkaar te krijgen?
gebruik sorted(<list>) om een gesorteerde copy te returnen:
gebruik <list>.sort() om de list inplace te sorteren.

Code: Selecteer alles

invoer = ['a', '6', 'zebra', 'appeltaart']
uitvoer = sorted(invoer)

print(f'{invoer}')
print(f'{uitvoer}')

Reageer