2013-07-11 28 views
0

我仍在學習Python,因此對我一無所知!從列表中提取可更改的字符串並在Python中插入

我有一個看起來像這樣的列表:

['2 19 2839475239874 hda'] 

我需要提取從最終的HDA。但是,hda可能並不總是最後一塊,hda可能並不總是隻有3個字母(可能是4或5,並且可能包含數字)。但它總是以字母'h'開頭。

在成功提取hda之後,我需要將該塊插入到dd命令中。這看起來是這樣的:

dd if=/dev/zero of=/dev/hda bs=512 count=1 

但如果HDA可能是不同的每個I運行dd命令的時候,我需要一種方法來有dd命令多變的「HDA」的一部分。

對不起,如果這是混亂,我是一個初學者,並迷惑自己!我嘗試過使用startswith進行提取,但是甚至無法通過那裏!

+0

'['2 19 2839475239874 hda']'只有一個元素的列表?爲什麼不使用一個字符串,或者列表中有更多的字符串? – zhangyangyu

+0

@ zhangyangyu不,這是唯一的列表,hda是我需要的唯一字符串/塊。對不起,如果我沒有正確理解你的問題。 – ohhiloveyouu

+0

@張揚餘,我想他只是誤拼了。閱讀'['2','19','2839475239874','hda']';]。 –

回答

1

只需像這樣:

lst = ['2 19 2839475239874 hda'] 

# Extracting the device part 
dev = filter(lambda s: s[0] is 'h', lst[0].split())[0] 

# Inserting it 
cmd = 'dd if=/dev/zero of=/dev/{0} bs=512 count=1'.format(dev) 

你將要檢查,你不必在你的列表中的任何H-字雖然如此。

+0

我創建的程序應該打印出這一點: [ '2 19 2839475239874 HDA'] 作爲 ['2 – ohhiloveyouu

+0

@ohhiloveyouu更新了答案。 –

1
>>> thelist = ['2 19 2839475239874 hda'] 
>>> [item for item in thelist[0].split() if item[0] == 'h'][0] 
'hda' 
相關問題