繁体   English   中英

Python:将列表中的每个项目创建为变量,并在 for 循环中为其赋值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM