2012-12-09 45 views

回答

5

使用text.split()來製作字符串列表。 split method將默認分割爲空白。如果你想整型的列表,你可以使用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() 
0

嘗試:

map(int, string_numbers.split()) 

string_numbers是空格分隔的數字列表。

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] 
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]