[英]Looping over a list and printing those elements of a string
因此,我需要創建一個對整數列表進行迭代的函數,並以這些整數作為索引來打印字符串的字符。 像這樣:
printString('123456789',[1,7,5,3])
2
8
6
4
我有這個:
def printString(s,list):
i=0
resultString=str()
for i in range(len(list)):
resultString= s[list[i]]
i=i+1
print (resultString)
但是它只打印字符串的第一個字符,我想for循環有問題,我只是找不到它是什么。
任何幫助將是有用的! 謝謝
結果如下:
printString('123456789',[1,7,5,3])
2
8
6
4
可以以多種方式實現,這就是我要做的。
def printString(input, indexArr):
for i in indexArr:
print(input[i])
printString('123456789',[1,7,5,3])
移動print(resultString)
,使其位於循環內。
def printString(s,list):
i=0
resultString=str()
for i in range(len(list)):
resultString= s[list[i]]
i=i+1
print (resultString)
其他但非必要的建議:
您不需要i=0
或i=i+1
,因為for
循環已經為您創建和增加了值。
def printString(s,list):
resultString=str()
for i in range(len(list)):
resultString= s[list[i]]
print (resultString)
您不需要resultString=str()
因為Python非常樂意在函數中間創建一個新變量,而沒有任何暗示其類型的提示。
def printString(s,list):
for i in range(len(list)):
resultString= s[list[i]]
print (resultString)
您根本不需要resultString
,因為您只使用過一次它的值。
def printString(s,list):
for i in range(len(list)):
print (s[list[i]])
如果您對索引沒有特定的需求,則最好遍歷列表的元素而不是索引。
def printString(s,list):
for idx in list:
print (s[idx])
盡量不要使用與內置類型名稱相同的變量名稱。
def printString(s,seq):
for idx in seq:
print (s[idx])
這是因為您沒有將所有結果附加到字符串中,這將為您提供答案: 2864
def printString(s,list):
i=0
resultString=str()
for i in range(len(list)):
resultString+=s[list[i]]
i=i+1
print (resultString)
printString('123456789',[1,7,5,3])
這里有幾個問題。 首先, print
語句應在循環內縮進。 其次,即使這里無害,您也不應自己操縱i
,而應使用for
循環為您完成操作。 最后, list
是變量的可怕名稱,因為它隱藏了python的內置列表。 將所有內容放在一起,您將得到以下內容:
def printString(s, lst):
for i in range(len(lst)):
resultString = s[lst[i]]
print (resultString)
給定您的args作為測試用例:
#!/usr/bin/python
def printString(strng, indexes):
return ''.join((c for i,c in enumerate(strng) if i in indexes))
這使用了enumerate()
和一個生成器。
您只需要將print語句放入for循環中即可。 它僅打印最后一個元素,因為每次都會覆蓋它。 您也可以簡單地
def printString(s,list):
resultString=str()
for i in range(len(list)):
resultString= s[list[i]]
print (resultString)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.