我正在创建一个脚本,询问用户他们想要比较多少数据集。
用户输入一个数字,我想知道是否有办法,使用循环,为用户输入的数字创建一些变量。
input_SetNum = input("How many data sets are you comparing: ")
print ("You entered " + input_SetNum)
data_sets = {}
for i in range(1, input_SetNum+1):
data_sets[i] = input("Please enter the file path a data set: ")
答案 0 :(得分:2)
你可以使用字典。
data_sets = {}
for i in range(1, input_SetNum+1):
data_sets[i] = # data set value here
修改强>
如果您使用的是Python 3,则完整代码应为:
input_SetNum = input("How many data sets are you comparing: ")
print ("You entered " + input_SetNum)
data_sets = {}
for i in range(1, int(input_SetNum)+1):
data_sets[i] = input("Please enter the file path a data set: ")
print(data_sets)
当输入3时,打印data_sets
将产生此结果:
{1: '/path/file1', 2: '/path/file2', 3: '/path/file3'}
如果您使用的是Python 2.7,那么您应该用input()
替换所有raw_input
。
编辑2:
要根据路径打开CSV文件,您可以在已完成的工作中使用此类代码。
for key in data_sets:
with open(data_sets[key]) as current_file:
# do stuff here
也可以在之前用于文件路径的open()
上使用input()
。
data_sets[i] = open(input("Please enter the file path a data set: "))
我不是100%确定这是否有效,因为我对CSV文件不是很熟悉,但它不会受到伤害,如果它确实有效,那么比较数据集会更容易。
答案 1 :(得分:1)
只需使用一个列表 - 每个数字都有一个元素。
答案 2 :(得分:0)
您可以使用
在工作区中定义变量for i in input_SetNum:
vars()["var%s=value" % (i)] = value
你可能希望将它放在一个长期的类中,其中类的变量由,
定义class SomeObj:
def __init__(self, input_SetNum, values):
for i in input_SetNum:
vars(self)["var%s=value" % (i)] = values[i]
答案 3 :(得分:0)
你肯定是在正确的道路上。您的代码与我为同一任务生成的代码没有什么不同。我的大部分更改都是偏好问题,主要是我使用列表而不是字典,因为在这种情况下似乎没有任何压倒性的理由使用字典;您似乎主要以与使用其他语言的数组相同的方式使用它,或者作为不需要明确.append()
或.extend()
个新项目的列表。
# Python 3. For Python 2, change `input` to `raw_input` and modify the
# `print` statement.
while True: # Validate that we're getting a valid number.
num_sets = input('How many data sets are you comparing? ')
try:
num_sets = int(num_sets)
except ValueError:
print('Please enter a number! ', end='')
else:
break
data_sets = []
# Get the correct number of sets. These will be stored in the list,
# starting with `data_sets[0]`.
for _ in range(num_sets):
path = input('Please enter the file path a data set: ')
data_sets.append(path)
如果您输入了3
的套数,则会将data_sets
设为等于
['data_set_0', 'data_set_2', 'data_set_3']
获取适当的输入。