【问题标题】:How to make a list iteration with different actions depending on the value in Python如何根据 Python 中的值使用不同的操作进行列表迭代
【发布时间】:2020-08-17 11:12:00
【问题描述】:

我有一个语言列表。例如

languages = ['RU', ' EN', ' DE']

我需要针对每种语言使用不同的操作进行迭代。 我正在尝试通过以下方式进行操作:

for x in languages:
    if x == 'EN':
        print(x, 'English')
    elif x == 'RU':
        print(x, 'Russian')
    elif x == 'DE':
        print(x, 'German')
    else:
        print('New Language')

但我只有其中一种语言的结果。

RU Russian
New Language
New Language
New Language
New Language

如何获得列表中每种语言的结果? 谢谢

【问题讨论】:

  • 您列表中的字符串中有空格。
  • languages = ['RU', 'EN', 'DE'] 更改您的列表
  • if 语句试图与值完全匹配。数组中有些值有空格,所以不匹配。
  • 使用 strip() 函数从值中删除多余的空间。

标签: python list iteration


【解决方案1】:

这是因为将空格视为字符。删除该空格或对字符串使用strip 方法。

languages = ['RU', 'EN', 'DE']
if x.strip() == 'EN':
   ...

【讨论】:

    【解决方案2】:

    您的语言列表中有一些额外的空间,只需将其删除并检查。

    languages = ['RU', 'EN', 'DE']
    

    【讨论】:

      【解决方案3】:

      如果您仔细查看除了“RU”之外的列表缩写有空格,请在比较之前使用 strip 方法去除空格

      languages = ['RU', ' EN', ' DE']
      
      for x in languages:
          x=x.strip()
          if x == 'EN':
              print(x, 'English')
          elif x == 'RU':
              print(x, 'Russian')
          elif x == 'DE':
              print(x, 'German')
          else:
              print('New Language')
      

      【讨论】:

        猜你喜欢
        • 2017-09-02
        • 1970-01-01
        • 2018-04-14
        • 2022-09-22
        • 1970-01-01
        • 1970-01-01
        • 2015-03-24
        • 1970-01-01
        • 2014-12-29
        相关资源
        最近更新 更多