所以,我有一个需要终端输入的python脚本。我有20个不同的数组,我想根据输入打印数组。
这是代码减去不同的数组。
homeTeam = raw_input()
awayTeam = raw_input()
a = (homeTeam[0])+(awayTeam[3])/2
b = (hometeam[1])+(awayTeam[2])/2
所以,实际上我想要发生的是homeTeam / awayTeam将获取所输入数组的数据。
由于
答案 0 :(得分:1)
您可以将逗号分隔(或任何您喜欢的任何唯一字符串)字符串作为输入。并且就该唯一标识符调用split
以获取list
(在Python中array
和list
不同)。
以下是示例:
>>> 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()
,系统将提示用户输入两个团队名称。该函数将以元组的形式返回两个团队的值。