Seite 1 von 1

einelementige tupel extrahieren

Verfasst: Dienstag 3. April 2007, 02:34
von Costi
ich hab einen int in einer tupel (von Tkinter.Listbox.curselection())
wie krieg ich ihm den da raus?

Verfasst: Dienstag 3. April 2007, 04:42
von mawe

Code: Alles auswählen

In [1]: t = (42,)

In [2]: t[0]
Out[2]: 42

Verfasst: Dienstag 3. April 2007, 07:17
von Leonidas
Schon mal überlegt, das Tutorial durchzuarbeiten? Das was du fragst steht genau so im Tuturial drin.

Verfasst: Dienstag 3. April 2007, 09:19
von mitsuhiko
Mit dem ",=" operator:

Code: Alles auswählen

>>> t = (42,)
>>> i ,= t
>>> i
42
ist nicht ganz ernst gemeint

Verfasst: Dienstag 3. April 2007, 13:43
von Costi
hmmmmm......

daran hab ich natuerlich auch schon gedacht.
mein fehler muss dan irgendwo anders liegen

vieleicht koennt ihr euch das mal angucken:

Code: Alles auswählen

def download(index):
	index = index[0]
	print 'downloading', file_locations[index]
	results.delete(index)
file_locations beinhaltet die orte der dateien die in der Listbox zu sehe sind.
wenn man nun einer diese dateien mit einen doppelclick downloaden will[1]
kriege ich eine fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "lib-tk/Tkinter.py", line 1348, in __call__
    return self.func(*args)
  File "getit/simple.py", line 116, in <lambda>
    results.bind('<Button-1>', lambda n: download(results.curselection()))
  File "getit/simple.py", line 75, in download
    print 'downloading', file_locations[index]
TypeError: list indices must be integers
diese sagt mir das 'index' kein int ist (?)

[1]

Code: Alles auswählen

results.bind('<Button-1>', lambda n: download(results.curselection()))

Schon mal überlegt, das Tutorial durchzuarbeiten? Das was du fragst steht genau so im Tuturial drin.
superb, just what i needed. thx

Verfasst: Dienstag 3. April 2007, 13:47
von BlackJack
Jau weil in dem Tutorial sicher auch die Stelle kommt an der Dir gezeigt wird, wie Du herausbekommst welchen Typ ein Objekt hat.

Und das mal auszuprobieren ist auch nicht soooooo schwer.

Code: Alles auswählen

In [20]: root = tk.Tk()

In [21]: lb = tk.Listbox(root)

In [22]: lb.insert(0, 'a', 'b', 'c')

In [23]: lb.pack()

In [24]: lb.curselection()
Out[24]: ('1',)

Verfasst: Dienstag 3. April 2007, 14:26
von Costi
schon klar dabei wird ein tupel zurueckgegeben
aber mit "index = index[0]" mache ich doch daraus einen int !?

Verfasst: Dienstag 3. April 2007, 14:36
von Zap
Einfach mal mit type() anschauen.
Wenn's ein str ist so wie man's beim Blackbird in
Zeile 10 sieht, dann brauchste noch ein int(..)

Verfasst: Dienstag 3. April 2007, 14:42
von Costi
asoooo, jetzt verstehe ich die welt wieder
und bedanke mich herzlich fuer eure geduld :lol: