如何在python中使用raw_input访问数组

时间:2016-10-04 12:39:28

标签: python arrays

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

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

homeTeam = raw_input()

awayTeam = raw_input()

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

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

由于

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以将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

答案 2 :(得分:0)

您可以使用字典而不是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(),系统将提示用户输入两个团队名称。该函数将以元组的形式返回两个团队的值。