Объединенный список и вывод кортежей не благоприятны - PullRequest
0 голосов
/ 06 июня 2019

Я хочу создать вывод, который объединяет список и кортеж, чтобы дать один вывод

def conca(names,storey): 
for name in names:
    i = 0
    d = "%s has %d"%(name,storey[i])
    print(d)
    i = i+1
 conca(names=("White house","Burj khalifa",
 "Shit"),storey = [3,278,45])

Но он дает вывод как

Белый дом имеет 3

У Бурджа Халифа 3

У дерьма 3

Но я не хочу только 3. Я хочу, чтобы я увеличился.Дайте вывод, как

Белый дом имеет 3

Бурдж Халифа имеет 278

Дерьмо имеет 45

Почему я не увеличивается.Что я делаю не так

1 Ответ

1 голос
/ 06 июня 2019

Задача

  • Вы определяете i внутри цикла, поэтому вы сбрасываете значение до 0 на каждой итерации, в результате чего каждый раз добавляете сначала storey.

Исправлено

def conca(names, storey):
    i = 0
    for name in names:
        d = "%s has %d"%(name,storey[i])
        print(d)
        i = i+1
conca(names=("White house","Burj khalifa",
 "Shit"), storey=[3,278,45])

Вы также можете использовать zip() для одновременного перебора списков:

def conca(names, storey): 
    for name, st in zip(names, storey):
        print(f'{name} has {st}')

conca(names=("White house","Burj khalifa",
 "Shit"), storey=[3,278,45])
...