Python 如何将多个数字添加到多个列表中
我正在尝试将多个数字添加到多个列表中 我想将输入按以下顺序排列: 病人一:变量一,变量二,变量三 病人二:变量一,变量二,变量三 病人三:变量一,变量二,变量三 我已经想出了如何从字典中获取信息,但是顺序不对 但目前的输入顺序是: 患者一:变量一,患者二:变量一,患者三:变量一 患者一:变量二,患者二:变量二,患者三:变量二 患者一:变量三,患者二:变量三,患者三:变量三 有什么建议吗Python 如何将多个数字添加到多个列表中,python,list,Python,List,我正在尝试将多个数字添加到多个列表中 我想将输入按以下顺序排列: 病人一:变量一,变量二,变量三 病人二:变量一,变量二,变量三 病人三:变量一,变量二,变量三 我已经想出了如何从字典中获取信息,但是顺序不对 但目前的输入顺序是: 患者一:变量一,患者二:变量一,患者三:变量一 患者一:变量二,患者二:变量二,患者三:变量二 患者一:变量三,患者二:变量三,患者三:变量三 有什么建议吗 while True: print("") number_of_persons
while True:
print("")
number_of_persons=(input("Please enter no. of persons \n"
"Whole digit only. \n"
"Positive Number:"))
if number_of_persons.isdigit():
print("Thanks")
break
try:
pass
except:
pass
number_of_persons=int(number_of_persons)
variable_one = []
variable_two = []
variable_three = []
for person in range(0,number_of_persons):
while True:
print("Person Number: " ,person + 1)
a=(input(" Enter variable one: "))
if a.isdigit():
print("Thanks")
variable_one.append(a)
break
try:
pass
except:
pass
for person in range(0,number_of_persons):
while True:
print("Person Number: " ,person + 1)
b=(input(" Enter variable two: "))
if b.isdigit():
print("Thanks")
variable_two.append(b)
break
try:
pass
except:
pass
for person in range(0,number_of_persons):
while True:
print("Person Number: " ,person + 1)
c=(input(" Enter variable Three: "))
if c.isdigit():
print("Thanks")
variable_three.append(c)
break
try:
pass
except:
pass
print(variable_one)
print(variable_two)
print(variable_three)
首先,您处理的是列表,而不是字典。有一种方法是列出一系列列表:
while True:
print("")
number_of_persons=(input("Please enter no. of persons \n"
"Whole digit only. \n"
"Positive Number: "))
if number_of_persons.isdigit():
print("Thanks")
break
number_of_persons=int(number_of_persons)
variables = []
for i in range(number_of_persons):
variables.append([]) # a list of lists
for person in range(number_of_persons):
for n in range(3):
while True:
a = input(f"Person Number: {person + 1}, variable {n + 1}: ")
if a.isdigit():
print("Thanks")
variables[person].append(a)
break
print(variables)
首先,您处理的是列表,而不是字典。有一种方法是列出一系列列表:
while True:
print("")
number_of_persons=(input("Please enter no. of persons \n"
"Whole digit only. \n"
"Positive Number: "))
if number_of_persons.isdigit():
print("Thanks")
break
number_of_persons=int(number_of_persons)
variables = []
for i in range(number_of_persons):
variables.append([]) # a list of lists
for person in range(number_of_persons):
for n in range(3):
while True:
a = input(f"Person Number: {person + 1}, variable {n + 1}: ")
if a.isdigit():
print("Thanks")
variables[person].append(a)
break
print(variables)
这里有一种使用字典的方法。
def input_number(i):
while True:
try:
number = int(input(f"\tEnter variable {i+1}: "))
print("\n")
break
except ValueError:
print("Only integers accepted!\n")
return number
while True:
try:
print("Please enter no. of persons")
print("Whole digit only.")
number_of_persons = int(input("Positive number: "))
break
except ValueError:
print("Only integers accepted!\n")
variables = {}
for person in range(number_of_persons):
print("----------------------------------------")
vars_ = []
for i in range(number_of_persons):
print(f"Person Number: {person + 1}")
a = input_number(i)
vars_.append(a)
variables[person+1] = vars_
print("\n")
print(variables)
for j in range(len(variables)):
print(variables[j+1])
样本输出:
Please enter no. of persons
Whole digit only.
Positive number: 2
----------------------------------------
Person Number: 1
Enter variable 1: 50
Person Number: 1
Enter variable 2: 100
----------------------------------------
Person Number: 2
Enter variable 1: 150
Person Number: 2
Enter variable 2: 200
{1: [50, 100], 2: [150, 200]}
[50, 100]
[150, 200]
这里有一种使用字典的方法。
def input_number(i):
while True:
try:
number = int(input(f"\tEnter variable {i+1}: "))
print("\n")
break
except ValueError:
print("Only integers accepted!\n")
return number
while True:
try:
print("Please enter no. of persons")
print("Whole digit only.")
number_of_persons = int(input("Positive number: "))
break
except ValueError:
print("Only integers accepted!\n")
variables = {}
for person in range(number_of_persons):
print("----------------------------------------")
vars_ = []
for i in range(number_of_persons):
print(f"Person Number: {person + 1}")
a = input_number(i)
vars_.append(a)
variables[person+1] = vars_
print("\n")
print(variables)
for j in range(len(variables)):
print(variables[j+1])
样本输出:
Please enter no. of persons
Whole digit only.
Positive number: 2
----------------------------------------
Person Number: 1
Enter variable 1: 50
Person Number: 1
Enter variable 2: 100
----------------------------------------
Person Number: 2
Enter variable 1: 150
Person Number: 2
Enter variable 2: 200
{1: [50, 100], 2: [150, 200]}
[50, 100]
[150, 200]
“但是顺序不对”-我的意思是,你是这样编程的:你在迭代人,每个人都要求用户输入一种值,这样代码就可以按预期工作。如果你想为一个人请求多个值,可以这样迭代:为范围内的人(…):为范围内的值(3):c=input(f“Enter variable{value\u number}:”)
“但是顺序错误”-我的意思是,你编程的方式是:对人进行迭代,每个人要求用户输入一种值,因此,代码按预期工作。如果您想为一个人请求多个值,请如下迭代:为范围内的人(…):为范围内的值(3):c=input(f“输入变量{value\u number}:”)