我必須創建這個函數,它具有一個字符串和一個字符串列表作爲輸入;並輸出包含字符串的字符串索引列表。我已經完成了,但是我應該根據字符串中字符串的出現來對索引進行協調。我怎樣才能做到這一點?這是我的代碼: 我在'if'下添加了'count'來計算出現次數,我如何使用它來根據這個來統一指數?根據事件發生的座標元素的問題
回答
可以在每個字符串函數添加數列表,
def function(s,lst):
l=[]
counts = []
for i in range(len(lst)):
if s in lst[i]:
counts += [lst[i].count(s)]
l += [i]
return l, counts
這裏counts
是每個條目是在您的輸入列表中的字符串中的s
出現的次數的列表。該函數現在返回元組中的兩個列表,例如第一個元組元素爲l
,第二個元素爲counts
。請注意,i=-1
在這裏是多餘的,因爲i
是range
中迭代器的一個元素,並且在循環未更改其循環值之前爲其分配值。
您現在可以進行排序基於利用this後修飾線上的第二列表上的第一個列表,
out_fun = function(s,inp)
out = [x for x,_ in sorted(zip(out_fun[0],out_fun[1]), key = lambda x: x[1], reverse=True)]
inp
是字符串列表,例如inp = ["hello", "cure", "access code"]
。 out_fun
是來自函數function
的兩個列表的返回元組。 s
是感興趣的字符串 - 在您的原始示例中,這是'c'
。
該行的功能是首先使用zip
創建一個元組列表,其中元組的每個第一個元素都是來自索引列表的元素,第二個元素來自發生的列表。程序然後根據第二個元素以相反的順序對元組進行排序(最大的第一個)。列表理解僅提取排序結果中每個元組的第一個元素,這又是索引列表。
如果您對此解決方案有任何疑問,請隨時詢問。你有一個Python 2.7標籤 - 在Python 3.X中,你需要使用list(zip())
,因爲zip
返回一個zip對象而不是一個列表。
這是你的程序的更簡潔的版本:
def function(s,lst):
t = [(i,x.count(s)) for i,x in enumerate(lst) if s in x]
return t
它使用列表理解創建並返回與第一個元素是具有字符串的索引元組t
列表字符s
,第二個是計數。這不一定更高效,需要檢查。但這是一個乾淨的單線,至少對我來說更具可讀性。
元組的列表可以比以類似的方式,以以前的方案進行排序,基於第二元組元素即計數上,
out_fun = function(s,inp)
out = [x for x,_ in sorted(out_fun, key = lambda x: x[1], reverse=True)]
首先感謝您的回答。我現在正在嘗試寫下你寫的東西,而且我對這個解決方案几乎沒有疑問。第一:out_fun是一個新功能?第二:在第一行代碼中寫入''out_fun = function(s,inp)'',函數中的''inp'是什麼?第三:要退出out_fun,我必須創建一個新功能?對於所有這些問題抱歉,但我對python真的很陌生(我從上個月開始研究它),我只知道幾件簡單的事情。謝謝:) – darkwidow
沒問題,我的壞 - 我應該添加輸入。我現在更新它:out_fun只是你函數的輸出,inp是字符串的輸入列表。 – atru
我仔細閱讀,現在我明白了。我把out_fun放在我的函數中,並且工作正常。所以非常感謝。我會永遠感謝你:D – darkwidow
- 1. 鼠標事件問題嵌套元素
- 2. iPhone像素座標問題
- 3. 如何根據文檔獲取SVG中元素的座標?
- 4. 重複發生的事件問題
- 5. 快速根據最發生的歷史標籤標記的一些元素
- 6. 的XPath發現的根元素標籤
- 7. 發生事件時更改元素
- 8. Javascript - 使用鼠標事件和浮動元素的問題
- 9. 路由事件問題 - 在子元素之前觸擊根UI元素
- 10. 獲取元素的座標
- 11. jQuery的元素座標
- 12. 根據座標Android
- 13. 關於根元素的Jaxb問題
- 14. Jaxb生成的xml - 根元素前綴問題
- 15. 寫入數據到XML時,發生事件時的問題
- 16. Yui鼠標座標元素
- 17. Qt - QGridLayout訪問元素在座標
- 18. 有關元素的BizTalk模式開發問題發生次數
- 19. 通過dojo.byId dojo訪問元素時發生的問題1.8
- 20. 根據另一個元素值限制元素髮生的XML模式
- 21. Vue.JS + webpack生成事件發佈問題
- 22. ios懸停事件發生問題
- 23. 問題與事件發生在Vue eventhub
- 24. xpath根據已知的嵌套td元素的表標題
- 25. 輸入元素生成鼠標點擊的x和y座標
- 26. 標題內聯元素的問題
- 27. 問題與標題元素的定位
- 28. 根據select元素的onchange事件添加新的moodle UI元素
- 29. MySQL根據重要性發生多個元素的結果
- 30. DOM元素dblclick事件在刪除dom元素後發生單擊事件後發生變化
請輸入與預期的輸出。你需要使用鍵功能進行排序,但這不清楚你要問什麼 –
你爲什麼使用計數?請給我們一個樣本輸入和輸出 – yash
例如:function(「c」,[「hello」,「cure」,「access code」])----> output [2,1]現在它返回我[1 ,2] – darkwidow