为了账号安全,请及时绑定邮箱和手机立即绑定

蟒蛇根据条件选择变量

蟒蛇根据条件选择变量

慕桂英3389331 2022-09-13 10:16:33
我想知道是否有可能根据特定条件/输入选择变量。例如:day_1 = 5day_2 = 10day_3 = 15i =2selected_variable = day_i代码会给出一个错误,当然day_i没有定义。我知道我可以将所有变量添加到列表中,并通过列表位置等访问它们,但我正在使用一个相当大的Simpy环境,如果存在,这将非常有用。谢谢!
查看完整描述

4 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

可用于获取作用域中的所有变量。vars()


对于示例:


day_1 = 5

day_2 = 10

day_3 = 15

i = 2

selected_variable = vars()[f"day_{i}"]


查看完整回答
反对 回复 2022-09-13
?
慕容3067478

TA贡献1773条经验 获得超3个赞

下面的代码将打印出变量的值day_2


i =2

selected_variable = 'day_{}'.format(str(i))

exec("print(%s)" % selected_variable)


查看完整回答
反对 回复 2022-09-13
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

您可以将值存储在列表中,并用作索引来访问一个框,因为列表是从0开始编制索引的ii-1


days = [5, 10, 15]

i = 2

selected_variable = days[i - 1]

您还可以在字典中关联键/值,并从数字中获取值


days = {

    1: 5, 2: 10, 3: 15

}

i = 2

selected_variable = days[i]


查看完整回答
反对 回复 2022-09-13
?
湖上湖

TA贡献2003条经验 获得超2个赞

正如评论中提到的,有几个问题:


您可以定义字典:


day = {

"day_1": 5,

"day_2": = 10,

"day_3": = 15

}


selected_variable = day[f"day_{i}"]

数组


day = [

5,

10,

15

]


selected_variable = day[i] 

IF 语句


day_1 = 5

day_2 = 10

day_3 = 15


if i == 1:

    selected_variable = day_1

elif i == 2:

    selected_variable = day_2

elif i == 3:

    selected_variable = day_3

或(或)字典(在这种情况下,我最喜欢的)localsvars


day_1 = 5

day_2 = 10

day_3 = 15


selected_variable = locals()[f"day_{i}"]


查看完整回答
反对 回复 2022-09-13
  • 4 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信