自从我在python工作以来,它已经有一段时间了。我有两个列表(A和B)。如果用户键入'A',我想输出为列表A.从用户输入打印列表
我似乎无法记住如何做到这一点。
person = input('List A or B?: ')
person = str(input())
A = ["Mark","Rob","Mary"]
B = [ "Alex","Mitch","Tyler"]
for x in A:
print x
自从我在python工作以来,它已经有一段时间了。我有两个列表(A和B)。如果用户键入'A',我想输出为列表A.从用户输入打印列表
我似乎无法记住如何做到这一点。
person = input('List A or B?: ')
person = str(input())
A = ["Mark","Rob","Mary"]
B = [ "Alex","Mitch","Tyler"]
for x in A:
print x
只需确保检查的反应是什么,和你设置:
person = input("List A or B? ")
listA = ["Mark","Rob","Mary"]
listB = ["Alex","Mitch","Tyler"]
if person == "A":
for x in listA:
print(x)
elif person == "B":
for x in listB:
print(x)
注 - 当给交互式反馈,你必须引用它。 input()解释输入,如果您回复B
而不是"B"
,则会出现错误。在Python 3
def main():
person = input('List A or B?: ')
A = ["Mark","Rob","Mary"]
B = [ "Alex","Mitch","Tyler"]
myList = []
if person == 'A':
myList = A
elif person == 'B':
myList = B
for x in myList:
print(x)
if __name__ == "__main__":main()
太棒了。谢谢,这有帮助! :) – omonoia
关于'input':没有理智的程序员在Python 2.x中使用它(请参阅[这个问题])(http://stackoverflow.com/questions/7709022/is-it-ever-useful-to-use-pythons -input-over-raw-input)) – Matthias
@Matthias - 实际上,这个答案似乎是面向Python 3的。在Python 2中,它甚至不起作用('person'将是一个列表而不是字符串)。 – TigerhawkT3
person_dict = {
'A': ["Mark","Rob","Mary"],
'B': [ "Alex","Mitch","Tyler"]
}
key = raw_input("List A or B:")
print(persons_dict.get(key, None))
它并没有在这种特殊情况下产生变化,但是在Python 2中'print'不需要括号。但它只是一个对象,所以它不会改变输出。同样,'dict.get()'在缺省键时已经默认返回'None'。不需要指定它。 – TigerhawkT3
一个可能的答案我做了“myList中”最初是空的,所以如果用户不选择一个选项也不会显示任何内容。
请注意,OP没有使用Python 3,正如他们将“print”用作语句所证明的那样。 – TigerhawkT3
有几种方法可以做到这一点,其中一些方法由其他用户解释。
我会告诉你最快的(但也是最不安全的)的方式来做到这一点:
# Python 3
person = input()
for x in globals()[person]:
print(x)
例子:
>>> A = ['foo', 'bar']
>>> person = input()
A
>>> person
'A'
>>> globals()[person]
['foo', 'bar']
>>> for x in globals()[person]:
... print(x)
foo
bar
这个压低了这个的人,关心给予解释吗?我想我已经说得很清楚,这是一个快速入门。 – oxalorg
这段代码没有意义。你在Python 2中使用'input',它已经将输入的字符串评估为所需列表的引用,然后将该列表转换为一个字符串,然后尝试访问'globals() '用这个字符串列表的关键字。它100%被打破。 – TigerhawkT3
@ TigerhawkT3对不起,我很着急,只是复制粘贴OP中的代码,并在未经审查的情况下进行了必要的更改。我对python2没有任何经验,所以我已经通过一个合适的例子修复了python3的代码。 – oxalorg
你可以这样做:
a = ["Mark","Rob","Mary"]
b = [ "Alex","Mitch","Tyler"]
person = raw_input('List A or B?: ').lower()
if person == 'a':
print a
elif person == 'b':
print b
else:
print 'Try again'
你意思是这样的'if person =='A':myList = A else:myList = B' ....'myList'中的x? – Harvey
@哈维你可以将其缩短为三元语句或添加一个elif来检查输入是否为 – Li357
@AndrewL:我打算这样做,但认为他们可能会简化问题并且三元语句那么就不合适了。不过,你是对的。我也应该加上'elif'。只是很难知道他们真正想要什么。 – Harvey