如果我有一個字符串,例如:'你好,今天你好嗎'我怎麼能夠定期插入空格?因此,例如我想在這些步驟中使用範圍函數向它中插入空格:range(0,27,2)。所以它看起來是這樣的:如何將空格插入到使用範圍函數的字符串中?
"He ll o ho w ar e yo u to da y Jo e"
它現在在每個第二個索引處都有一個空格,直到它結束。我怎麼做這個有人知道嗎?謝謝。
如果我有一個字符串,例如:'你好,今天你好嗎'我怎麼能夠定期插入空格?因此,例如我想在這些步驟中使用範圍函數向它中插入空格:range(0,27,2)。所以它看起來是這樣的:如何將空格插入到使用範圍函數的字符串中?
"He ll o ho w ar e yo u to da y Jo e"
它現在在每個第二個索引處都有一個空格,直到它結束。我怎麼做這個有人知道嗎?謝謝。
對於這種特殊情況下,最直接的方法是
s = 'Hello how are you today Joe'
s = " ".join(s[i:i+2] for i in range(0, len(s), 2))
這分裂串入的兩個字符塊的每個第一次,然後用空格加入這些塊。
...我很敬畏...編輯:這不是做一個檢查,看看當前的字符是否是一個空格;如果當前字符已經是空格,結果字符串可能會以雙空格結束。 – 2012-04-07 15:19:19
OP在他們的例子中有兩個空格,他們只是因爲(缺少)格式而不可見。 – 2012-04-07 15:21:58
@Sven Marnach,如果我不想要雙倍的空間呢?我只是好奇。我認爲你的問題解決方案非常棒。 – George 2012-04-07 15:25:43
這是一切!
>>> def insert_spaces(text, s_range):
return ' '.join(text[start:end] for start, end in
zip([0] + s_range, s_range + [len(text)])).strip()
的問題例如:
>>> insert_spaces('Hello how are you today Joe', range(0, 27, 2))
'He ll o ho w ar e yo u to da y Jo e'
不同starts
,steps
和stops
其他例子:
>>> insert_spaces('Hello how are you today Joe', range(5, 20, 4))
'Hello how are you today Joe'
>>> insert_spaces('Hello how are you today Joe', range(0, 27))
'H e l l o h o w a r e y o u t o d a y J o e'
>>> insert_spaces('abcdefghijklmnopqrstuvwxyz', range(0, 16, 5))
'abcde fghij klmno pqrstuvwxyz'
只是另一種方式來做到這一點
>>> ''.join(e if (i+1)%2 else e+" " for (i,e) in enumerate(list(s)))
'He ll o ho w ar e yo u to da y Jo e'
我猜「你好」 - >「Helo」是一個錯字,而不是所需結果的一部分? – 2012-04-07 15:23:14