【问题标题】:Argument in a for loop [closed]for循环中的参数[关闭]
【发布时间】:2018-11-24 01:07:24
【问题描述】:

请帮我卡住

def printdata(something):
    for i in something + "_raw":
        something + "_raw_names" = i.findAll("div",{"itemprop":"name"})
        something + "_name" = something + "_raw_names"[0].text
        print("Name: " + something + "_name")

我希望 printdata(bodies) 这样做:

for i in bodies_raw:
    bodies_raw_names = i.findAll("div",{"itemprop":"name"})
    bodies_name = bodies_raw_names[0].text
    print("Name: " + bodies_name)

如果你有解决方案请告诉我,因为我在这种方式上挣扎太久了

【问题讨论】:

  • 你试图接近它的方式是不可能的!您不能在运行时修改 variable's 名称。我建议改用字典。
  • 我不清楚你想要什么 - 你共享了两个看起来相似的函数。怎么了?
  • @doctorlove:OP 正试图通过附加一个字符串来构造一个变量名,即bodies + "_raw"bodies_raw。是的,我知道。
  • 如果您找到了问题的解决方案,请在下方发布您自己问题的答案,但不要通过删除最初的问题来编辑您的原始帖子。

标签: python python-3.x function for-loop arguments


【解决方案1】:

您不应该尝试像那样动态地创建/访问/修改变量名。如果您有很多类似命名的变量,请考虑将它们存储在字典中。例如:

raws = {'bodies': bodies_raw, 'other': other_raw}

然后你的函数可以是:

def printdata(something):
    for i in raws[something]:
        raw_names = i.findAll("div", {"itemprop": "name"})
        raw_name = raw_names[0].text
        print("Name: " + raw_name)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 2021-08-14
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    相关资源
    最近更新 更多