所以我需要创建一个迭代整数列表的函数,并打印字符串的字符,并将这些整数作为索引。像这样:
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-loop有问题,我只是找不到它是什么。
任何帮助都会有用!谢谢
答案 0 :(得分:2)
导致此结果的函数:
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])
答案 1 :(得分:1)
移动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])
答案 2 :(得分:0)
这是因为你没有将所有结果附加到字符串中,这会给你答案: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])
答案 3 :(得分:0)
这里有几个问题。首先,newComment=comment.replace('she','he').replace('her','his')
语句应该在循环内缩进。其次,即使它在这里无害,你也不应该自己操纵print
,而是留下i
循环来为你做。最后,for
是一个变量的可怕名称,因为它隐藏了python的内置列表。把它们放在一起,你得到这样的东西:
list
答案 4 :(得分:0)
将你的args作为测试用例:
.root {
-fx-background-image: url("grey.jpg");
}
这使用#!/usr/bin/python
def printString(strng, indexes):
return ''.join((c for i,c in enumerate(strng) if i in indexes))
和生成器。
答案 5 :(得分:0)
您只需要将print语句放在for循环中。它只打印最后一个元素,因为它每次都被覆盖。您也可以简单地使用它
def printString(s,list):
resultString=str()
for i in range(len(list)):
resultString= s[list[i]]
print (resultString)