簡體   English   中英

一行循環到多行python

[英]One line for loop to multiple lines python

我無法將一行循環恢復到多行循環。 這是原始代碼:

sequences = [[[item.strip() for item in itemset.split(",")] for itemset in sequence] for sequence in sequences]

我試過多行循環:

for sequence in sequences:
 for itemset in sequence:
    for item in itemset.split(","):
       sequences.append(item.strip())

它不像原來的那樣工作。 任何想法?

您的原始問題會使用相同的數據名稱( sequences )重新分配結果。 在這里,我將結果分配給變量result

鑒於您沒有提供樣本數據,我只是做了一些( sequences )。

您的原始列表理解是嵌套的(注意括號),每個層創建一個單獨的列表。

[[[x.strip() for x in something] for something in something_else] for something_else in sequences]

我通過創建一個包含每個for-loop的新列表來重新創建該結構,隨着它繼續匹配原始列表理解。

# Sample data.
sequences = [['the, quick, brown fox'], ['jumped, over, the lazy dog']]

# Solution.
result = []
for sequence in sequences:
    inner_list = list()
    result.append(inner_list)
    for itemset in sequence:
        inner_list_2 = list()
        inner_list.append(inner_list_2)
        for item in itemset.split(","):
            inner_list_2.append(item.strip())
>>> result
[[['the', 'quick', 'brown fox']], [['jumped', 'over', 'the lazy dog']]]

# Original list comprehension.
>>> [[[item.strip() for item in itemset.split(",")] 
      for itemset in sequence] 
     for sequence in sequences]
[[['the', 'quick', 'brown fox']], [['jumped', 'over', 'the lazy dog']]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM