Ik heb zojuist wat willekeurige dingen gedaan in Python 3.5.
En met 15 minuten vrije tijd bedacht ik dit:
a = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
"x", "y", "z"}
len_a = len(a)
list = list(range(0, len_a))
message = ""
wordlist = [ch for ch in message]
len_wl = len(wordlist)
for x in list:
print (a[x])
Maar dat bevredigende gevoel van willekeurig succes overviel me niet.
In plaats daarvan deed het gevoel van falen:
Traceback (most recent call last):
File "/Users/spathen/PycharmProjects/soapy/soup.py", line 9, in <module>
print (a[x])
TypeError: 'set' object does not support indexing
Help alstublieft
Antwoord 1, autoriteit 100%
Probeer vierkante haken:
a = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
"x", "y", "z"]
d.w.z.: gebruik een list
in plaats van een set
Antwoord 2, autoriteit 60%
Zoals de foutmelding zegt, ondersteunt set
inderdaad geen indexering, en is a
een set
, aangezien je set literalen (accolades) hebt gebruikt ) om zijn elementen te specificeren (beschikbaar sinds Python 3.1). Als u echter elementen uit een set wilt extraheren, kunt u ze eenvoudig herhalen:
for i in a:
print(i)
Antwoord 3, autoriteit 20%
@Sakib, je set a
kan al worden herhaald. Overweeg om deze bijgewerkte code te gebruiken in plaats van de elementen per index te openen.
a = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
for x in a:
print ( x )
Bovendien toont uw code niet genoeg intentie voor ons om u te helpen uw uiteindelijke doel te bereiken.
Voorbeelden:
range()
retourneert ook een itereerbaar type, dus er is geen reden om het te converteren naar eenlist
- Het is een slechte gewoonte om het trefwoord
list
opnieuw te gebruiken (overschrijven), en dit zal tot veel meer problemen leiden len_wl
heeft nog geen doel- Vanwege #3 hebben noch
wordlist
nochmessage
een doel
Hopelijk helpt dit
PS – vergeet niet een antwoord te selecteren
Antwoord 4
probeer je code op deze manier aan te passen.
a = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
"x", "y", "z"}
list_a = list(a)
len_a = len(a)
list = list(range(0, len_a))
message = ""
wordlist = [ch for ch in message]
len_wl = len(wordlist)
for x in list:
print list_a[x]
set ondersteunt geen indexering, maar lijst ondersteunt het, dus hier converteer ik set naar lijst en krijg index van lijst.