【问题标题】:Get a tuple from lists with zip() in Python在 Python 中使用 zip() 从列表中获取元组
【发布时间】:2021-10-13 23:33:38
【问题描述】:

我被困在这段代码中,我必须通过使用 zip 函数和 for 循环(无索引或枚举(强制))从三个列表中获取一个元组。我需要得到这个:

answer = (
    ("John", "London", "Cloudy"),
    ("Bruno", "San Paulo", "Sunny"),
    ("Mike", "Sevilla", "Windy"),
)

我尝试了这个(在函数内部):

answer = []
for item in zip([name], [place], [weather]):
    answer.append(item)
    answer = tuple(answer)
    return answer

问题是,我得到了这个输出:

((["John", "Bruno", "Mike"], ["London", "San Paulo", "Sevilla"], ["Cloudy", "Sunny", "Windy"]),)

所以,不仅里面的括号有问题,而且顺序也有问题。有人可以给个提示吗?谢谢。

【问题讨论】:

  • 为什么要把变量放在[]里面?
  • 我尝试消除它们,我只正确得到了第一“行”,但之后无法生成 ir
  • 因为循环中有return answer,所以在处理完第一行后返回。

标签: python tuples zip


【解决方案1】:

不要将[] 放在变量周围。现在您压缩的是这些列表,而不是变量的内容。

只需使用:

answer = tuple(zip(name, place, weather))

【讨论】:

    【解决方案2】:

    你可以这样做:

    tuple(zip(name, place, weather))
    (('john', 'london', 'cloudy'), ('bruno', 'san paulo', 'sunny'), ('mike', 'sevilla', 'windy'))
    
    

    【讨论】:

      猜你喜欢
      • 2013-09-30
      • 2018-09-01
      • 2016-03-02
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      相关资源
      最近更新 更多