使用list.append时保持元素顺序

时间:2019-06-04 22:40:31

标签: python-3.x

我正在尝试在列表的元素中寻找子字符串。我想按特定顺序搜索这些子字符串,并将答案附加到保持该顺序的空列表中。

mylist = ['abc123', 'def456', 'ghi789', 'ABC987', 'aBc654']
sub = 'abc'
sub1 = 'def'
newlist=[]
for s in mylist:
    if sub1 in s:
        newlist.append(s)
    if sub in s:
        newlist.append(s)
newlist

我得到的结果是['abc123','def456']。预期的输出应为['def456','abc123']。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

在使用mylist的第一次循环迭代中,s =“ abc123”

它到达第一个if,其结果为False。它命中第二个if,求值True并附加值。

在第二次循环迭代中,s =“ def456”

它击中第一个if => True,它击中第二个if => False

您始终可以使用两个循环:

mylist = ['abc123', 'def456', 'ghi789', 'ABC987', 'aBc654']
sub = 'abc'
sub1 = 'def'
newlist=[]
for s in mylist:
    if sub in s:
        newlist.append(s)
for s in mylist:
    if sub1 in s:
        newlist.append(s)