Сравнение 2 списков строк, обновление 3-го списка строк в той же позиции индекса - PullRequest
0 голосов
/ 18 сентября 2018

Если у меня есть 3 списка строк, например:

['make ford', 'model taurus', 'color white']
['make chevy', 'model impala', 'color white']
['make ford', 'model taurus', 'color white']

Каков наилучший способ обнаружить изменения, которые произошли между списком и 1 и 2; затем обновить список 3? Например, вывод будет:

['make chevy', 'model impala', 'color white']

Основная логика, которую я пытаюсь реализовать:

if string1[0] = string2[0], then string3[0] remains unchanged
if string1[0] /= string2[0], then string3[0] is changed to string2[0]'s value

... и так далее Было бы лучше преобразовать эти списки в массивы, чтобы сделать это?

1 Ответ

0 голосов
/ 18 сентября 2018

Вы можете сделать что-то вроде этого:

a = ['make ford', 'model taurus', 'color white']
b = ['make chevy', 'model impala', 'color white']
c = ['make ford', 'model taurus', 'color white']

for i in range(len(a)):
    if a[i] != b[i]: c[i] = b[i]

print(c)

выход

['make chevy', 'model impala', 'color white']

В этом ответе предполагается, что все списки имеют одинаковый размер. Если список имеет разные размеры, вы можете сравнить (изменить) только индексы наименьшего списка, в этом случае вы можете попробовать что-то вроде этого:

length = min(len(a), len(b), len(c))
for i in range(length):
    if a[i] != b[i]:
        c[i] = b[i]

print(c)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...