我有輸入,它可能是單個圖元或列表或圖元元組。如何將Dumbo序列文件輸入轉換爲製表符分隔的文本
我想拉平它只是一個列表,像這樣:
def flatten(values):
return list(values)
正常情況下會被壓扁(someiterablethatisn'tastring)
但是,如果值= '1234',我'''','2','3','4'],但我想['1234']
如果值= 1,我會得到TypeError:'int'對象是不可迭代的,但我想[1]
有沒有一個優雅的方式 去做這個? 我真正想要的到底做的只是「\ t'.join(壓扁(值))
編輯:讓我來解釋這更好的...
我想轉換一個Hadoop二進制序列文件轉換爲使用dumbo的平面選項卡分隔文本文件。使用輸出格式選項,輸出格式文本
Dumbo是一個圍繞hadoop流的python包裝。總之我需要寫映射器功能:
DEF映射器(鍵,值) #do一些東西 產量K,V
其中k是從關鍵中的第一部分的字符串,和值是包含鍵的其餘部分和值作爲字符串的製表符分隔字符串。
例如:
input: (123, [1,2,3])
output: ('123', '1\t2\t\t3')
或更復雜的:
input: ([123, 'abc'], [1,2,3])
output: ('123', 'abc\t1\t2\t\t3')
輸入鍵或值可以是一個或多個圖元 的我想要「變平」的列表和/ tuple函數可以處理任何事情,並返回一個值列表。
對於超出價值,我會做這樣的事情 V =「\ t'.join(名單(STR(S)對於s的扁平化(SEQ)))
這是怎麼回事? http://stackoverflow.com/questions/716477/join-list-of-lists-in-python – 2009-10-26 16:33:22
通常術語'flatten'表示你想要將嵌套列表壓扁成單個列表(例如'[1,2, [3,4,5,6]]''到'[1,2,3,4,5,6]')。你要求的東西似乎稍有不同。如果你最終會將它提供給'str.join',你將需要將每個元素轉換爲一個字符串,而你在這個過程中。 – 2009-10-26 16:40:14
Duplicate:http://stackoverflow.com/questions/406121/flattening-a-shallow-list-in-python加上一些列表的混淆。 '1'不是一個列表,不能被壓扁;首先它必須被製成一個清單。 'str'已經是一個序列,所以請更具體地說明應該發生什麼。 – 2009-10-26 17:06:52