看板 Python 關於我們 聯絡資訊
※ 引述《aety0129 (Chen)》之銘言: : 我想要把list中的數據拿出來做分割是可以的嗎? : list = ['101/01', '102/02', '103/03', '104/04', '105/05', '106/06'] : 分割成這樣 : a = ['101', '102', '103' '104', '105', '106'] : b = ['01', '02', '03', '04', '05', '06'] : 找了一下都是不太相同的用法... 請求支援 如果你只是要割開... >>> l = ['101/01', '102/02', '103/03', '104/04', '105/05', '106/06'] >>> [i.split('/') for i in l] [['101', '01'], ['102', '02'], ['103', '03'], ['104', '04'], ['105', '05'], ['106', '06']] 如果你一定要分成兩個 lists... >>> a, b = zip(*[i.split('/') for i in l]) >>> a ('101', '102', '103', '104', '105', '106') >>> b ('01', '02', '03', '04', '05', '06') 官方文件就有提到 zip 搭配 * 可以達到 unzip 功能 這點還滿酷的... 不過我必須承認我也是 Google 之後才發現這件事情 http://stackoverflow.com/questions/19339/ 另外如同連結裡提到, 參數展開在陣列太大的時候會有問題 (因為參數必須在解析時被完整展開, 無法使用 iterator) 如果有大量資料處理需求的話, 可以考慮連結裡面的另一個解搭配 generator 使用 -- 「我最想要的同伴嘛,首先是要笑口常開,其次是我們能永遠不會發生誤會。 如果這些都能辦到的話,嗯,如果他是世界上第一流的橋手,也還不錯。」 -- 班尼多‧加羅素,前義大利藍隊成員 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146
timTan:真是高深的回答耶~ 08/11 02:35
timTan:之前看過一些人這樣寫,我還不是很能掌握~~~ 08/11 02:37
uranusjr:我把這篇擴充了一下 http://goo.gl/Pqr7KM 08/11 04:04
ck574b027:這技巧的確不是很直覺,不過文件有提到所以不會很難找 08/11 06:26
timTan:想成 unzip 就好想多了~ 08/11 14:48
icycandle:第二個方法真漂亮 08/11 15:20
icycandle:不對,Python用這麼神奇的語法真的沒問題嗎? XD 08/11 15:21
sbrhsieh:把zip看成對數據作橫(垂直)切割會較易理解 08/11 16:03
drm343:其實我對 matrix 這說法有點疑惑,稍微搜尋了一下, 08/12 17:56
drm343:才發現 zip 實際上應該是 Convolution 這鬼東西 08/12 17:57
grtfor:想問雖然看過很多問題可用zip解,不過不會比generator慢嗎? 08/12 21:00
drm343:py3 的 zip 就是 generator,不知 py2 情況 08/12 23:04
uranusjr:Python 2 是 list, 要用 itertools.izip 才是 generator 08/12 23:26
grtfor:感謝兩位,原來如此~ 08/12 23:50