繁体   English   中英

Python:将多行输出合并到单一列表中

[英]Python: Merge Multiline Output into Singular List

我创建了一个随机生成器来创建一个包含一定数量字符串的列表。 每个字符串都是大写字母和数字的混合。 然后我得到了每个字符串中的字符数。 但是,输出是作为它自己的单独行出来的。 我需要这些输出行来生成一个新列表。

Current Output:

5

1

2
Desired Output: (5,1,2)

我对python很陌生,请帮忙。 以下是我到目前为止的代码:

import random
import string

chars = string.ascii_uppercase + string.digits
from random import randrange
A = [''.join(random.choices(string.ascii_uppercase + string.digits, k=randrange(1,10))) for j in range(5)]

print(A)


def bubbleSort(A):
    for passnum in range(len(A)-1,0,-1):
        for i in range(passnum):
            if A[i]>A[i+1]:
                temp = A[i]
                A[i] = A[i+1]
                A[i+1] = temp

bubbleSort(A)
print(A)


#Output line 1: Original List
#Output line 2: Sorted List


for item in A:
  len(item)
  A2 = len(item)
  print(A2)

在最终循环中使用print(A2, end=', ')在同一行上打印项目。

您可以使用列表理解而不是最后一个for循环:

print([len(item) for item in A])

使用此列表理解代替循环可能输出您发布的代码:

['XXF8XQA2V', 'ACQ1A782', 'E', '6G1LC45', 'C']
['6G1LC45', 'ACQ1A782', 'C', 'E', 'XXF8XQA2V']
[7, 8, 1, 1, 9]

为了匹配您想要的输出,您需要打印项目lentuple ,因此您可以执行以下操作而不是最终循环:

print(tuple(len(a) for a in A))

前任:

>>> A = ['abc', 'asfgv', 'a']
>>> print(tuple(len(a) for a in A))
(3, 5, 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM