如何使用 for 循环使这段代码更短

Posted

技术标签:

【中文标题】如何使用 for 循环使这段代码更短【英文标题】:how can i make this code shorter using for loop 【发布时间】:2019-01-30 07:29:48 【问题描述】:

我想知道 有什么建议吗? 很抱歉问你们简单的问题

谢谢

if (int(classes[0][0])==1):
    print('icis_0.8_water')
if (int(classes[0][0])==2):
    print('nevia')
if (int(classes[0][0])==3):
    print('Xiaomi')
if (int(classes[0][0])==4):
    print('hyundai_mouse')
if (int(classes[0][0])==5):
    print('peace_stapler')

if (int(classes[0][1])==1):
    print('icis_0.8_water')
if (int(classes[0][1])==2):
    print('nevia')
if (int(classes[0][1])==3):
    print('Xiaomi')
if (int(classes[0][1])==4):
    print('hyundai_mouse')
if (int(classes[0][1])==5):
    print('peace_stapler')

if (int(classes[0][2])==1):
    print('icis_0.8_water')
if (int(classes[0][2])==2):
    print('nevia')
if (int(classes[0][2])==3):
    print('Xiaomi')
if (int(classes[0][2])==4):
    print('hyundai_mouse')
if (int(classes[0][2])==5):
    print('peace_stapler')

【问题讨论】:

【参考方案1】:

你可以使用字典

d = 
    1: 'icis_0.8_water',
    2: 'nevia',
    3: 'Xiaomi',
    4: 'hyundai_mouse',
    5: 'peace_stapler'

print(d[int(classes[0][0])])
print(d[int(classes[0][1])])
print(d[int(classes[0][2])])

希望对你有帮助..

【讨论】:

【参考方案2】:

你可以试试:

results = ['icis_0.8_water', 'nevia', 'Xiaomi', 'hyundai_mouse', 'peace_stapler']
for i in range(3):
    for j in range(1, 6):
        if(int(classes[0][i]) == j):
            print(results[j - 1])

当然,如果您有更多“类”元素要检查,或者您有更多可能的结果(并添加额外的外部“for”循环来遍历 classes[k][i] 元素,其中“ k”正在改变)。

【讨论】:

【参考方案3】:
for i in range(len(classes[0])):
  if (int(classes[0][i])==1):
    print('icis_0.8_water')
  if (int(classes[0][i])==2):
    print('nevia')
  if (int(classes[0][i])==3):
    print('Xiaomi')
  if (int(classes[0][i])==4):
    print('hyundai_mouse')
  if (int(classes[0][i])==5):
    print('peace_stapler')

如果要循环classses rows数组,请在外面添加一个for循环。

【讨论】:

但是有些问题...当我运行此代码时,它会返回所有类。当我运行我的代码时,它可以正常工作。但我不知道为什么这个结果是错误的。

以上是关于如何使用 for 循环使这段代码更短的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 上使这段代码异步

如何使用 JavaScript 连续循环 Jquery 块

如何使这段代码简短易读?

如何使这段代码更紧凑和惯用?

写这些 for 循环更短

如何使用 for 循环优化此代码