我是新來的python編程..可以有人建議一些方法來做到以下幾點:如何提取序列中的第一個和最後一個字符串?
整個數據存儲在一個文件和來。我不能打擾這個序列。
我想提取鏈的第一個和最後一個節點。有幾個這樣的鏈。數據內容以千兆字節爲單位。
我對如何在python中使用它一無所知。有人可以提供足夠的幫助。
我是新來的python編程..可以有人建議一些方法來做到以下幾點:如何提取序列中的第一個和最後一個字符串?
整個數據存儲在一個文件和來。我不能打擾這個序列。
我想提取鏈的第一個和最後一個節點。有幾個這樣的鏈。數據內容以千兆字節爲單位。
我對如何在python中使用它一無所知。有人可以提供足夠的幫助。
先看看「列表」是什麼,例如。
data[0]=hi
data[1]=hello
data[2]=how
data[3]=to
data[4]=hello
data[5]=python
data[6]=format
data[7]=computer
data[8]=python
data[9]=good programming language
或
多維列表,具體取決於您的數據。
data[0][0]=hi
data[0][1]=hello
data[0][2]=how
data[0][3]=to
data[1][0]=hello
data[1][1]=python
data[1][2]=format
data[1][3]=computer
data[1][4]=python
data[1][5]=good programming language
發佈實際上不工作的代碼不太可能幫助OP –
我不太確定你的序列是如何工作的,尤其是如何選擇開始和結束元素。所以我所做的基本上是我設置了一個起始值,然後匹配一次,然後嘗試一遍又一遍地找到相同的值。
首先我爲數據做了一個生成器。正如你所提到的,你有相當多的數據,所以你可能會有一些順序生成器。我仿真與靜態發生器產生的示例行:
>>> def dataReader():
yield 'a1=hi'
yield 'b1=hello'
yield 'a1=how'
yield 'b1=to'
yield 'a1=hello'
yield 'b1=python'
yield 'a1=format'
yield 'b1=computer'
yield 'a1=python'
yield 'b1=good programming language'
然後我建立一個空列表,將持有的結果和最後一個元素,其被初始化爲初始值
>>> lst = []
>>> last = 'hi' # as we want to begin with 'hi' which does not have a duplicate?
接下來,我瀏覽一下數據,按等號分割並比較最後一個值。我使用值None
來標記之前的值已經找到它的重複。爲了使它更簡單一些,我現在完全忽略了key
,但是如果您需要確保在匹配新值時前一個鍵與當前值不同,您可以輕鬆添加更多條件。
>>> for line in dataReader():
key, value = line.split('=')
if last == None:
lst.append(line)
last = value
elif last == value:
lst.append(line)
last = None
>>> lst
['a1=hi', 'b1=hello', 'a1=hello', 'b1=python', 'a1=python', 'b1=good programming language']
你的意思是有很多數據..哦,好的,謝謝。你能解釋一下這些是如何連鎖的嗎?我不清楚數據結構是如何工作的。 – Levon
'a1 = hi'與'b1 = hello'有什麼關係? – georg
如果在最後有另外一對行說「a1 = python」和「b1 =愚蠢的編程語言」會怎麼樣?你想同時輸出'('hi','好的編程語言')和_'('hi','愚蠢的編程語言')'嗎? – senderle