2011-11-07 50 views
1

我在Python中有一個列表。我不知道它究竟有多久,但我知道它不到15件長。設置列表的最小長度?

我想將它填充到正好15個項目,爲所有需要添加的項目添加空字符串。

有沒有一種有效的方法來在Python中做到這一點?

我希望:

myarr = myarr[:15] 

可能會奏效,但它沒有。

目前我有:

if len(myarr) < 15: 
    for i in range(15 - len(myarr)): 
     myarr.append('') 

任何更緊湊的建議嗎?

myarr.extend([""]* (15 - len(myarr))) 
+0

您可以編寫一個自定義類,其行爲類似於帶有填充的列表。 –

回答

9
myarr += [""] * (15 - len(myarr)) 
+3

+1。這也不需要'len(myarr)<15'的測試,因爲'*'重複操作符爲負數重複計數返回一個空列表。 –

+0

請注意,這是可行的,因爲字符串是不可變的。 –

+0

完美 - 結構緊湊,簡單明瞭,正是我期待的!謝謝! – Richard

4
在oneliner方式

在模塊範圍內。然後執行:

padded = (source + ALL_EMPTY)[:MAX_LEN] 
3

使用純切片(沒有呼叫爲len):

padded = (source + [''] * MAX_LEN)[:MAX_LEN] 

如果這就是所謂的很多次,那麼一旦初始化ALL_EMPTY列表