使用FOR循环打印相应的CSV值

dfddblmv  于 2023-03-15  发布在  其他
关注(0)|答案(1)|浏览(112)

这是我在这里的第一篇文章,由于我是循环的新手,我对这个场景有点困惑。我被要求写一个程序,它接受一个整数输入,并使用该输入在CSV/Excel列表中打印出相应的值。我能够达到这样一个点,它基于输入打印名称和值,但格式不是我需要的正确方式,我的剧本有点笨拙。
具体来说,我必须打印州和人口。如果我输入5,它将打印出从0到5的名称和人口。
我不能用Pandas,因为我还是个初学者,这是一门课程。
我就在这里。

print('Give me a number thats 0 - 50:')
    user_num = int(input())
    for name in state_names:
        if name == state_names[user_num]:
            names = state_names[0:user_num]
    for pop in state_populations:
        if pop == state_populations[user_num]:
            pops = state_populations[0:user_num]
    print(f'{names}, {pops}')

如果输入为3,则输出为:

['Michigan', 'Georgia', 'Ohio'], [9986857, 10617423, 11689100]

代替

Michigan   9986857
Georgia   10617423
Ohio      11689100

这就是我需要的输出。
我能做些什么来缩短它并使它产生这样的输出呢?

hjzp0vay

hjzp0vay1#

如果我没理解错的话,您可以使用zip()函数:

state_names = ['Michigan', 'Georgia', 'Ohio', 'New York']
state_populations = [9986857, 10617423, 11689100, 99999]

print('Give me a number:')
user_num = int(input())

for n, p in zip(state_names[:user_num], state_populations[:user_num]):
    print(f'{n:<10} {p:>10}')

图纸:

Give me a number:
3
Michigan      9986857
Georgia      10617423
Ohio         11689100

相关问题