【问题标题】:How to access an array using raw_input in python如何在 python 中使用 raw_input 访问数组
【发布时间】:2016-10-04 12:39:27
【问题描述】:

所以,我有一个需要从终端输入的 python 脚本。我有 20 个不同的数组,我想根据输入打印数组。

这是减去不同数组的代码。

homeTeam = raw_input()

awayTeam = raw_input()

a = (homeTeam[0])+(awayTeam[3])/2
b = (hometeam[1])+(awayTeam[2])/2

所以,实际上我想要发生的是 homeTeam/awayTeam 将获取输入数组的数据。

谢谢

【问题讨论】:

标签: python arrays


【解决方案1】:

您可以将输入作为逗号分隔(或任何您喜欢的唯一值)字符串。并在该唯一标识符上调用split 以获取list(在Python 中arraylist 是不同的)。

下面是例子:

>>> my_string = raw_input()
a, b, c, d
>>> my_list = my_string.split(', ')
>>> my_list
['a', 'b', 'c', 'd']

既然你现在有了list,你就已经知道你需要用它做什么了。

或者,您也可以使用eval 从 raw_input 中提取列表。但强烈建议不要使用 eval。阅读:Is using eval in Python a bad practice?

下面是例子:

>>> my_list = eval(raw_input())
[1, 2, 3, 4, 5]
>>> my_list[2]
3

【讨论】:

    【解决方案2】:

    您可以使用字典来代替 20 个单独的数组。

    d = {"team1": "someValue",
         "team2": "anotherValue",
         ...
    }
    

    然后您可以通过名称检索团队的值:

    x = raw_input("team1")
    

    d[x] 现在将返回 "someValue"

    在您的特定情况下,您可以将数组用于字典的值,例如:

    d = {"team1": [value1, value2, ...],
         "team2": [...],          
         ...
    }
    

    现在d[x] 返回数组[value1, value2, ...]

    完整示例

    最后,您可以将所有这些包装成一个函数 f:

    def f():
        homeTeam = d[raw_input("Enter home team: ")]
        awayTeam = d[raw_input("Enter away team: ")]
        a = (homeTeam[0] + awayTeam[3])/2
        b = (homeTeam[1] + awayTeam[2])/2
        return a, b
    

    调用f() 将提示用户输入两个团队名称。该函数将以元组的形式返回两个团队的值。

    【讨论】:

      【解决方案3】:

      您可以将 raw_input() 作为字符串,然后您可以使用 split 函数将其设为数组。在进行算术运算时,您需要进行类型转换。例如,

      homeTeam = raw_input() ### 1,2,3,4
      homeTeam = homeTeam.split(",")
      
      awayTeam = raw_input() ### 5,6,7,8
      awayTeam = awayTeam.split(",")
      
      a = (int(homeTeam[0]) + int(awayTeam[3]))/2
      b = (int(hometeam[1]) + int(awayTeam[2]))/2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-16
        相关资源
        最近更新 更多