【问题标题】:How to use for loop in list in python 3?如何在 python 3 的列表中使用 for 循环?
【发布时间】:2019-01-19 17:09:40
【问题描述】:

我有一个关于在 python 3 中编写 for 循环的问题。

基本上,如果我有一个包含两个元素的列表,我不明白如何编写 for 循环,比如这个:

list1 = [("Berlin", 22), ("Zagreb", 30), ("New York", 25), ("Chicago", 20), ("Paris", 29)]

这基本上是一个包含城市及其以摄氏度为单位的温度的列表,我想创建一个包含城市但现在以华氏度为单位的温度的新列表。公式为:

F° = (9/5)*C° + 32

我不明白我应该如何遍历这个包含每个成员中的两个元素的列表。

【问题讨论】:

  • 您是否尝试遍历列表以获取每个项目?你知道如何访问元组的每个元素吗?
  • 我尝试遍历列表,但出现错误。我知道如何访问元组的每个单独元素。
  • 只是对未来问题的提醒,最好发布您尝试出现错误的代码,然后询问相关问题。很高兴你在这里得到了答案,但是当你问一个更狭窄的问题时更有可能。

标签: list for-loop python-3.7


【解决方案1】:

使用列表推导:

list1 = [("Berlin", 22), ("Zagreb", 30), ("New York", 25), ("Chicago", 20), ("Paris", 29)]

list2 = [(city, 9/5 * temp + 32) for city, temp in list1]

print(list2)
# [('Berlin', 71.599999999999994), ('Zagreb', 86.0), ('New York', 77.0), ('Chicago', 68.0), ('Paris', 84.200000000000003)]

在这里,您遍历元组列表,将城市名称设为city,将摄氏温度设为temp,并将摄氏温度转换为华氏温度。

没有列表理解:

list2 = []

for city, temp in list1:
    list2.append((city, 9/5 * temp + 32))

print(list2)
# [('Berlin', 71.599999999999994), ('Zagreb', 86.0), ('New York', 77.0), ('Chicago', 68.0), ('Paris', 84.200000000000003)]

【讨论】:

  • 非常感谢您的回答。你能告诉我如何在不使用列表推导的情况下做到这一点吗?
  • @CroSimpson2.0,请在答案中找到。
【解决方案2】:

您需要知道的第一件事是访问 2D 列表中的元素。根据您的list1,城市排在第 0 位,温度连续排在第 1 位。在一个简单的 for 循环中,您可以按如下方式访问它们。请记住保留缩进,以指定 for 循环的主体。

for element in list1:
    city = element[0]
    temp_c = element[1]

然后您可以在循环内直接使用temp_c 计算华氏温度 (temp_f)。

temp_f = (9 / 5) * temp_c + 32

下一个任务是将计算得到的 temp_f 值连同城市名称附加到一个新列表 (list2) 中。

list2.append((city, temp_f))

但在此之前,您应该定义list2。 (在您附近定义list1

list2 =[]

这样就完成了。您可以使用打印语句检查它是否有效。

for element in list2:
    print(element)

这段代码可以实现得更短。 我扩展它以降低复杂性。希望你明白了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 2021-10-18
    • 2020-06-07
    • 2019-05-09
    • 2012-09-21
    • 1970-01-01
    • 2014-02-22
    • 2019-01-18
    相关资源
    最近更新 更多