变量的变量

11c*_*y11 0 python variables python-3.x

我不知道如何把这个放进去,所以我直接举一个例子

month1=31
month2=28
month3=31
month4=30
#number of days in certain months

monthnumber=3
# I want to find the number of days in the third month

monthnumberstr=str(monthnumber)
daysinmonth=("month"+monthnumberstr)

print(daysinmonth)
Run Code Online (Sandbox Code Playgroud)

现在我期待它打印31但我得到month3作为输出.如何使输出成为变量的变量.我再也不知道该怎么说.我只想要输出为31,而不是month3

Asa*_*din 6

你想要的是每个月的天数集合,特别是列表或字典.以下是如何使用列表执行此操作的示例:

days_in_months = [31, 28, ..., 30]
month = 3

print(days_in_months[month]) # prints 30
Run Code Online (Sandbox Code Playgroud)

请注意,列表中的第一项被编入索引days_in_month[0],因为Python(以及许多其他编程语言)中的大多数集合都是零索引的.检索days_in_months[3]将返回列表中的第四项.

根据DSM的建议,这里有一个如何使用的例子dict(这有点复杂,但对你的用例更有意义):

days_in_months = {1:31, 2:28, 3:31, 4:30}
month = 3

print(days_in_months[month]) # prints 31
Run Code Online (Sandbox Code Playgroud)

在这种情况下,根据您明确提供的键索引值,而不是像前一个示例中的零索引增加序列一样.{}文字中逗号分隔的项目是键值对,将每个键(月份编号)映射到一个值(月份中的天数).因此,访问days_in_months[3]返回31,而不是30.

  • 创建dict的一种不易出错的方法是`dict(enumerate([31,28,31,30,...],1)` (2认同)