0

tkinter に入力したい数字がいくつかあります: 18 64 22 5 42 40 48 20 49 33 61 39 62 71.そして、[18,64,22,5,42,40....]のように見せたい

4

4 に答える 4

5

text.split()文字列のリストを作成するために使用します。split メソッドは、デフォルトで空白で分割されます。int のリストが必要な場合は、次を使用できますmap(int, text.split())

In [6]: text = '18 64 22 5 42 40 48 20 49 33 61 39 62 71'

In [7]: text.split()
Out[7]: ['18', '64', '22', '5', '42', '40', '48', '20', '49', '33', '61', '39', '62', '71']

In [8]: map(int, text.split())
Out[8]: [18, 64, 22, 5, 42, 40, 48, 20, 49, 33, 61, 39, 62, 71]

Tkinter でどのように使用できるかを示すには、次のようにします。

import Tkinter as tk
class App(object):
    def read_entry(self, event):
        entry = event.widget
        text = entry.get()
        print(map(int, text.split()))
    def __init__(self):
        entry = tk.Entry()
        entry.bind('<Return>', self.read_entry)
        entry.pack()
        entry.focus()

root = tk.Tk()
app = App()
root.mainloop()
于 2012-12-09T16:10:44.690 に答える
1

あなたが使用することができます list comprehension:

In [1]: strs="18 64 22 5 42 40 48 20 49 33 61 39 62 71"

In [2]: [int(x) for x in strs.split()]
Out[2]: [18, 64, 22, 5, 42, 40, 48, 20, 49, 33, 61, 39, 62, 71]
于 2012-12-09T16:25:15.530 に答える
0

試す:

map(int, string_numbers.split())

whenstring_numbersはスペースで区切られた数字のリストです。

于 2012-12-09T16:11:15.457 に答える
0

[18,64,22,5,42,40....] を正確に出力する関数

def format_nrs(nr_str, n=6):
    nrs = nr_str.split()
    s = ",".join(nrs[:n])
    if n >= len(nrs):
        return "[%s]" % s
    else:
        return "[%s...]" %s

利用方法 :

n_str = "18 64 22 5 42 40 48 20 49 33 61 39 62 71"

print format_nrs(n_str)
print format_nrs(n_str, 10)
print format_nrs(n_str, 14)

出力:

[18,64,22,5,42,40...]
[18,64,22,5,42,40,48,20,49,33...]
[18,64,22,5,42,40,48,20,49,33,61,39,62,71]
于 2012-12-09T17:41:42.217 に答える