簡體   English   中英

通過列表理解修改列表中的列表

[英]Modifying lists within lists via list comprehension

如何獲得這些loops以及if statements的理解力?

raw = [['-', 'bla'], ['-', 'la'], ['=', 'bla']]

for one in raw:
    if one[0] == '-':
        for two in raw:
            if two[1] == one[1] and two[0] == '=': two[0] = '--'

至今:

[two+one for two in raw for one in raw]

但不確定將if語句放在哪里:

if one[0] == '-'並且if two[1] == one[1] and two[0] == '=': two[0] = '--'

一個簡單的列表理解就足夠了:

raw = [['-', 'bla'], ['-', 'la'], ['=', 'bla']]

res = [['--' if (i != '-') and (['-', j] in raw) else i, j] for i, j in raw]

結果:

[['-', 'bla'], ['-', 'la'], ['--', 'bla']]

您可以在列表理解中設置項目,

您的代碼:

for one in raw:
    if one[0] == '-':
        for two in raw:
            if two[1] == one[1] and two[0] == '=': two[0] = '--'

轉換為列表理解:

[[two.__setitem__(0,'--') if two[1]==one[1] and two[0]=='=' else two for two in raw] if one[0]=='-' else one for one in raw]
print(raw)

輸出:

[['-', 'bla'], ['-', 'la'], ['--', 'bla']]

暫無
暫無

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

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