簡體   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