Как повлиять на отображение списка с помощью цикла for? - PullRequest
0 голосов
/ 27 июня 2018

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

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])

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

Ответы [ 5 ]

0 голосов
/ 27 июня 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])
0 голосов
/ 27 июня 2018

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

Фаренгейт: список температур [0] [0] Цельсий: список температур [1] [0]

Фаренгейт: список температур [0] [1] Цельсий: список температур [1] [1]

Фаренгейт: список температур [0] [2] Цельсий: список температур [1] [2]

.

.

.

.

Фаренгейт: список температур [0] [11] Цельсий: список температур [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])

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

0 голосов
/ 27 июня 2018

Использование zip:

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))
0 голосов
/ 27 июня 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
0 голосов
/ 27 июня 2018

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

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])
...