Как повлиять на отображение списка с помощью цикла for?

Я пытаюсь отобразить список преобразований температуры, используя циклы или любой другой базовый метод. Пожалуйста, держите его очень простым; нет импорта. Это код, который у меня есть сейчас:

temperature_list = [[-10,0,10,20,30,40,50,60,70,80,90,100],
                [-23.33,-17.78,-12.22,-6.67,-1.11,4.44,10,15.56,21.11,26.67,32.22,37.78]]


for farenheit in range(12):
    print ('Farenheit:',temperature_list[0][farenheit])

for celsius in range(12):
    print('Celsius:', temperature_list[1][celsius])

Теперь я хотел бы отобразить градусы Фаренгейта, а затем соответствующее преобразование в градусы Цельсия сразу после этого. С этим кодом сначала отображаются все градусы Фаренгейта, а затем все градусы Цельсия. Я не совсем понимаю, как выстроить их в линию, чтобы отображать значение по Фаренгейту, затем значение по Цельсию и так далее и тому подобное.


person virgot    schedule 27.06.2018    source источник


Ответы (5)


Ты можешь сделать:

temperature_list = [[-10,0,10,20,30,40,50,60,70,80,90,100],
                [-23.33,-17.78,-12.22,-6.67,-1.11,4.44,10,15.56,21.11,26.67,32.22,37.78]]


for temperature in range(12):
    print ('Farenheit:',temperature_list[0][temperature])
    print('Celsius:', temperature_list[1][temperature])
person Gabriel Ben Compte    schedule 27.06.2018

Используйте 1_:

temperature_list = [[-10,0,10,20,30,40,50,60,70,80,90,100], 
                    [-23.33,-17.78,-12.22,-6.67,-1.11,4.44,10,15.56,21.11,26.67,32.22,37.78]]

for f, t in zip(temperature_list[0], temperature_list[1]):
    print('Farenheit: {}, Celsius: {}'.format(f, t))
person Austin    schedule 27.06.2018

Использование распаковки последовательности и zip с f-строками (Python 3.6+):

far, celsius = [[-10,0,10,20,30,40,50,60,70,80,90,100],
                [-23.33,-17.78,-12.22,-6.67,-1.11,4.44,10,15.56,21.11,26.67,32.22,37.78]]

for f, c in zip(far, celsius):
    print(f'Farenheit: {f}, Celsius: {c}')

Farenheit: -10, Celsius: -23.33
Farenheit: 0, Celsius: -17.78
Farenheit: 10, Celsius: -12.22
Farenheit: 20, Celsius: -6.67
Farenheit: 30, Celsius: -1.11
Farenheit: 40, Celsius: 4.44
Farenheit: 50, Celsius: 10
Farenheit: 60, Celsius: 15.56
Farenheit: 70, Celsius: 21.11
Farenheit: 80, Celsius: 26.67
Farenheit: 90, Celsius: 32.22
Farenheit: 100, Celsius: 37.78
person jpp    schedule 27.06.2018

Вы должны распечатать оба подсписка в одном цикле. Если вы хотите вывести их в одной строке - используйте метод format(). Кривые скобки в строке определяют место для значений format() аргументов.

for i in range(12):
    print('{} F = {} C'.format(temperature_list[0][i], temperature_list[1][i]))

вы также можете найти применение словарям:

temperature_list = {'farenheit':[1, ... , 500], 'celcius':[23, ..., 329]} #numbers are just for the example, no real farenheit/celsius accordance
print(temperature_list['farenheit'][0])
person Community    schedule 27.06.2018

Прежде всего, вам нужно понять, как работают циклы, ваш цикл 1, то есть цикл, отображающий фаренгейты, отображает все содержимое Temperature_list[0][0....11], тогда второй цикл отображает все содержимое Temperature_list [1][0....11] и то, что вы хотите отобразить, выглядит примерно так:

Фаренгейты: Temperature_list[0][0] Цельсий: Temperature_list[1][0]

Фаренгейты: Temperature_list[0][1] Цельсий: Temperature_list[1][1]

Фаренгейты: Temperature_list[0][2] Цельсий: Temperature_list[1][2]

.

.

.

.

Фаренгейты: Temperature_list[0][11] Цельсия: Temperature_list[1][11]

Поэтому вам просто нужно использовать один цикл. Замените свой код на

temperature_list = [[-10,0,10,20,30,40,50,60,70,80,90,100],
            [-23.33,-17.78,-12.22,-6.67,-1.11,4.44,10,15.56,21.11,26.67,32.22,37.78]]
for temperature in range(12):
     print ('Farenheit:',temperature_list[0][temperature])
     print('Celsius:', temperature_list[1][temperature])

Надеюсь, это поможет вам понять немного лучше!

person Nishchay    schedule 27.06.2018
comment
Не давайте похожие ответы - person Vicrobot; 27.06.2018
comment
Не смотрел на другие ответы! - person Nishchay; 27.06.2018
comment
вы должны, потому что это сообщество; не личный чат. - person Vicrobot; 27.06.2018
comment
Я рад это знать! - person Nishchay; 02.07.2018