我需要將list_
中的所有元素附加到string
;最後我需要添加一個後綴。點'。'必須分開所有元素:加入不添加空白處的分隔符
list_ = args[f(n) : f(n+1)]
if list_:
string += '.' + '.'.join(list_) + '.' + suffix # works except when list_ is empty
else:
string += '.' + suffix
# list_ isn't used after this
我可以在一行中以更簡單的方式重寫它嗎?如果join
每個元素後添加一個分隔符,它只是這個:
string += '.' + '.'.join(args[f(n) : f(n+1)]) + '.' + suffix
編輯
我剛剛得知:
切片是副本,即使他們從來沒有分配到:Does Python do slice-by-reference on strings?
但islice可能會更糟糕,因爲它遍歷列表的開始:itertools.islice compared to list slice
個的一些替代品在這裏討論:Avoiding unnecessary slice copying in Python
在我的特定情況下,這看起來很完美。 – max 2012-02-01 22:23:05
切片確實創建了一個副本,但仍然比'islice'更便宜。 – max 2012-02-06 03:16:59