循环遍历列表并打印字符串的元素

时间:2017-05-25 19:29:42

标签: python string list for-loop

所以我需要创建一个迭代整数列表的函数,并打印字符串的字符,并将这些整数作为索引。像这样:

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有问题,我只是找不到它是什么。

任何帮助都会有用!谢谢

6 个答案:

答案 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])

Live Demo

答案 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=0i=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)