【问题标题】:Appending a list - Python [closed]附加列表 - Python [关闭]
【发布时间】:2022-01-05 18:43:29
【问题描述】:

我有一个炎热的天气温度列表: 54.7、34.5、33.9、37.1、36.1

所以我想从上面的温度列表开始,然后根据以下规则创建一个新列表:

如果温度低于 30,则将“低”添加到新列表中。 如果温度正常(包括 30 和 50 之间),请将“正常”添加到新列表中。 如果温度高于 50,则将“高”添加到新列表中。 例如,上面的列表将给出以下内容:

['高','正常','正常','正常','正常']

我是 Python 的菜鸟,我知道我需要追加,但我似乎无法让代码工作,谁能帮我提供示例代码

抱歉,我是 Stack Overflow 的新手,我之前没有发布我的代码,但在这里,我想我设法得到了我需要的输出。

编辑:我遇到的一些结果是重复的。我不确定我是否正确地完成了条件部分

 #initialise the input
hotday_temperatures = [54.7, 34.5, 33.9, 37.1, 36.1]
# initialise the output_list to the empty list
results = []
# for each input_value of the input_list:
for temperature in hotday_temperatures:
    if temperature < 30:
        results.append('Low')
    if temperature >=30 or temperature <=50:
        results.append('Normal')
    if temperature > 50:
        results.append('High')

print(results)
        
        


    

【问题讨论】:

  • 我们不是代码编写服务。我可以推荐一个 Python 教程,或者在网络上做一些(更多)研究吗?有很多资源。或者,如果您需要特定代码帮助,请将您的代码与您面临的确切问题一起发布。
  • 我之前没有发布我的代码,但是在这里,我想我设法得到了我需要的输出。 - 为什么发布当你的代码做它应该做的事情时的一个问题?

标签: python python-3.x list filter append


【解决方案1】:

这是一个使用列表推导的示例:

>>> temps = [54.7, 34.5, 33.9, 37.1, 36.1]
>>> ["Low" if t < 30 else "High" if t > 50 else "Normal" for t in temps]
['High', 'Normal', 'Normal', 'Normal', 'Normal']

表达式"Low" if t &lt; 30 else "High" if t &gt; 50 else "Normal" 是为给定数值t 生成正确的Low/Normal/High 字符串的原因。 for t in temps 部分迭代temps 中的每个值;将整个内容放入 [] 会将其变成一个新列表。

【讨论】:

    【解决方案2】:

    通常,在堆栈溢出时,您会在提出问题时显示您尝试过的代码,而不是要求从头开始编写代码,但这里有一个可行的解决方案。

    list_temps = [54.7, 34.5, 33.9, 37.1, 36.1]
    list_desc = []
    
    for temp in list_temps:
        if temp < 30:
            list_desc.append('L')
        elif temp > 50:
            list_desc.append('H')
        else:
            list_desc.append('N')
    

    【讨论】:

    • 啊抱歉,我是 Stack Overflow 的新手,下次我会记住这一点。但是非常感谢你
    • 我想它现在已经修复了。谢谢@S3DEV
    【解决方案3】:

    有很多方法可以解决您的问题。

    一种方式:一个简单的程序,初学者容易理解

    tps = [54.7, 34.5, 33.9, 37.1, 36.1]
    result = []
    for t in tps:
        r = 'Low' if t < 30 else 'High' if t > 50 else 'Normal'
        result.append(r)
    
    print(result)
    
    ['High', 'Normal', 'Normal', 'Normal', 'Normal']
    

    【讨论】:

      猜你喜欢
      • 2015-07-12
      • 2016-08-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      • 2013-07-20
      • 1970-01-01
      相关资源
      最近更新 更多