【问题标题】:For,if,elif loopFor,if,elif 循环
【发布时间】:2021-12-31 09:15:44
【问题描述】:

所以我的问题是我有一个包含数字或字符串的列表 d=[3050,1964,1250] 根据名称 3050,1964 或 1250,代码需要选择正确的列表。如果是 3050,则列出 [500,500,500,500,500,500],如果是 1964,则列出 [500,500,500,400],如果是 1250,则列出 [400,400,400]。

它还必须将所有列表附加/编译为子列表。所以结果看起来像 e=[[500,500,500,500,500,500],[500,500,500,400],[400,400,400]]

我试图在下面编写一个代码,但它不起作用,我不明白该怎么做。请帮忙

d=[3050,1964,1250]
e=[]
for i in d:
  if i==3050:
    calc=[500,500,500,500,500,500]
  elif i==1964:
    calc=[500,500,500,400]
  else: 
    calc=[400,400,400]
    e.append(calc)

【问题讨论】:

  • e.append 仅在 else 条件下被调用,即i == 1250。但这似乎是一大堆不必要的代码,只是说e=[[500,500,500,500,500,500],[500,500,500,400],[400,400,400]]

标签: python for-loop if-statement


【解决方案1】:

你可以试试这个:

d=[3050,1964,1250]
e=[]
for i in d:
  if i==3050:
    calc=[500,500,500,500,500,500]
  elif i==1964:
    calc=[500,500,500,400]
  else: 
    calc=[400,400,400]
  e.append(calc)

最后一行写错了,和上面的函数不匹配

【讨论】:

    【解决方案2】:

    你有缩进问题试试这个:

    d=[3050,1964,1250]
    e=[]
    for i in d:
      calc=[400,400,400]
      if i==3050:
        calc=[500,500,500,500,500,500]
      elif i==1964:
        calc=[500,500,500,400]
      e.append(calc)
    

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 2022-07-18
      • 2016-05-15
      • 1970-01-01
      • 2020-08-30
      • 2014-05-06
      • 2021-04-15
      相关资源
      最近更新 更多