在列表上循环并打印字符串中的那些元素

2024-03-28 15:53:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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循环有问题,我就是找不到它是什么。你知道吗

任何帮助都是有用的!谢谢


Tags: 函数字符串in列表forlendefrange
3条回答

这是因为您没有将所有结果追加到字符串中,这将给出答案: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(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])

导致以下结果的函数:

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

相关问题 更多 >