【问题标题】:How to limit string printing in a python loop?如何限制python循环中的字符串打印?
【发布时间】:2022-01-15 01:51:53
【问题描述】:

我想编写一个程序,在打印前 5 个元素后打印出下一行。 示例:

a = ("200","qwdecf",'acfsdvwvg','dfwrvgrwb','fwrfw','fwfw','wefweg53',"1233",'2344','09845')

输出

"200","qwdecf",'acfsdvwvg','dfwrvgrwb','fwrfw'
'fwfw','wefweg53',"1233",'2344','09845'

我发现它们中的大多数都使用整数,而不是字符串。所以我有点卡住了。感谢您的帮助。

这是我现在的代码:

line = 0
for i in range(len(a)):
    line+=1
    print(a[:6])

【问题讨论】:

  • 请注意,您的输出无法以任何方式获得,因为引号不是字符串的一部分,因此无法像示例中那样在输出中获取单引号或双引号。另外,如果您有超过 10 个项目怎么办?您究竟发现了什么可以与数字一起使用,而不能与字符串类似?

标签: python string for-loop range


【解决方案1】:

与 CozyCode 的答案相同 - 但请注意

a = ("200","qwdecf",'acfsdvwvg','dfwrvgrwb','fwrfw','fwfw','wefweg53',"1233",'2344','09845')

for key, value in enumerate(a):
    if (key + 1) % 5 == 0:
        print(value)
    else:
        print(value, end =" ") 

enumerate(a) 返回一个可迭代对象,其中每个初始值都与它们自己的索引配对。这就是为什么你可以使用for key, value in ..

【讨论】:

    【解决方案2】:

    这如您在问题中指定的那样工作:

    a = ("200","qwdecf",'acfsdvwvg','dfwrvgrwb','fwrfw','fwfw','wefweg53',"1233",'2344','09845')
    next_line=1
    output=""
    for i in range( len(a) ):
        output+='\"'+a[i]+'\"'
        if next_line == 5:
            output+= "\n"
            next_line=0
        else:
            output+=","
        next_line+=1
    print(output)
    

    输出:

    "200","qwdecf","acfsdvwvg","dfwrvgrwb","fwrfw"
    "fwfw","wefweg53","1233","2344","09845"
    

    【讨论】:

      【解决方案3】:

      也许可以这样做:

      a = (0, 2, "3'", True, 2, "c", 'f')
      max_word_count = 5
      output = ""
      
      for i, j in enumerate(a):
          if i % max_word_count == 0:
              output += "\n"
      
          output += f"{str(j)} "
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-30
        • 1970-01-01
        • 2016-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多