首页 > 解决方案 > 如何使用另一个变量“组装”一个python变量名?

问题描述

从给定的库中,我会读取如下数据:

data = msg.chan6_raw 

味精看起来像:

RC_CHANNELS {
  time_boot_ms : 1730680, 
  chancount : 16, 
  chan1_raw : 1500, 
  chan2_raw : 1500, 
  chan3_raw : 1000, 
  chan4_raw : 1500, 
  chan5_raw : 1800, 
  chan6_raw : 1000, 
  chan7_raw : 1000, 
  chan8_raw : 1800, 
  chan9_raw : 0, 
  chan10_raw : 0, 
  chan11_raw : 0, 
  chan12_raw : 0, 
  chan13_raw : 0, 
  chan14_raw : 0, 
  chan15_raw : 0, 
  chan16_raw : 0, 
  chan17_raw : 0, 
  chan18_raw : 0, 
  rssi : 0
}

我的代码知道我想读取位于名为“number”的变量中的通道“6”。

我不能这样做:

data = 'msg.chan' + str(number) + '_raw'

但这是我们想要的结果。

所以问题是:我如何根据“数字”“组装”这个请求 - 以获取正确的数据?

标签: python-3.x

解决方案


看起来RC_CHANNELS对象是字典的形式。如果是这种情况,您应该能够这样做:

RC_CHANNELS.get(f"chan{number}_raw")

如果不是,那么您可能希望首先将您的消息放入该表单中,从而使这变得微不足道。msg如果您需要帮助,请随时使用有关您的类型的信息更新您的问题。

所以你明白发生了什么:

  • dict支持一个get操作,它将获取给定键的值。密钥通常(但不总是)str是 s,因此您可以推断出要查找的密钥的名称。
  • 'f-string' 是这样的字符串:f"Some string with a {value}". 在这种情况下,它将自动格式化您的字符串,并拼接到变量的任何字符串表示形式中value。因此,如果value = 1它会导致"Some string with a 1". 这相当于"Some string with a {value}".format(value = value)

推荐阅读