[英]Python: Creating each item in a list as a variable and assigning a value to it in a for loop
在下面的代码中,我希望将列表中的每个项目创建为变量,然后分配一个“是”或“否”值。 循环应该成功地遍历每个调味品,但会不断将“是”或“否”值分配给“i”,而不是列表中的项目,例如“mayo”。 我想也许有 str(i) = pyip.inputYesNo(prompt + i +'?') 但这似乎也不起作用。 我将如何纠正这个问题?
谢谢
import pyinputplus as pyip
prompt = 'Do you want '
condiments = ['mayo', 'mustard', 'lettuce', 'tomato']
for i in condiments:
i = pyip.inputYesNo(prompt + i +'?')
有多种方法可以 go 关于那个,我最喜欢的是使用字典。
condiment_love = {}
for i in condiment:
condiment_love[i] = pyip.inputYesNo(f'do you love {i}?')
您可以使用 locals() 创建变量。
试试下面的例子,看看它是如何工作的。
condiments = ['mayo', 'mustard', 'lettuce', 'tomato']
mylocals = locals()
for condiment in condiments:
mylocals[condiment] = input("Y or N: ")
print("mustard:", mustard)
print("locals:", locals())
Output:
Y or N: n
Y or N: y
Y or N: n
Y or N: n
mustard: y
locals: {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'condiments': ['mayo', 'mustard', 'lettuce', 'tomato'], 'mylocals': {...}, 'condiment': 'tomato', 'mayo': 'n', 'mustard': 'y', 'lettuce': 'n', 'tomato': 'n'}
资料来源: https://www.pythonforbeginners.com/basics/convert-string-to-variable-name-in-python
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.