2013-10-15 33 views
0

我希望收到用于查找电子邮件的用户别名列表。截至目前,我只能为1输入下面的代码做到这一点:如何接收未知长度的字符串列表

def Lookup(Dict_list): 
    user_alias = raw_input("Please enter User Alias: ") 
    data = [] 
    for row in Dict_list: 

     #print "row test" 
     #print row 
     if user_alias in row.values(): 
      print row 


    for row in Dict_list: 
     if user_alias == row['_cn6ca']: 
       email = row['_chk2m'] 
       print email 
       return email 

但我希望能够让用户在这些别名的未知量(大概不超过10)进入和存储查询结果的电子邮件,这将允许他们的位置.csv

我想我可以让用户输入一个列表[PaulW,RandomQ,SaraHu等...]或有用户输入所有别名直到完成,在这种情况下,他们输入'完成'

如何更改此代码(我猜raw_data命令)来完成此操作?

+0

用户别名是否有空格? – Brionius

+0

幸运的是,它们总是一个固定的str – gigawatts

回答

2

这将接受输入,直到它到达一个空行(或任何你定义的标记)。

#! /usr/bin/python2.7 

print 'Please enter one alias per line. Leave blank when finished.' 
aliases = [alias for alias in iter (raw_input, '') ] 
print (aliases) 
+1

也许'list(iter(raw_input,''))'更简单。 –

+0

或者,更好的办法是,如果只打算迭代一次'aliases',就把它作为一个迭代器。这样,只要用户给你一个值,你就可以开始处理,而不必等到他们完成之后才能做任何事情。 – abarnert

+0

@abarnert当然。我把它留给OP,把迭代器放到他认为合适的地方。 – Hyperboreus

0

您可以要求用户输入别名列表,用空格隔开,然后分割字符串:

In [15]: user_aliases = raw_input("Please enter User Aliases: ") 
Please enter User Aliases: John Marry Harry 

In [16]: for alias in user_aliases.split(): print alias 
John 
Marry 
Harry 

In [17]: 

如果用户别名可以有空格他们,要求他们使用,说,一个逗号作为分隔符并且被分割:user_aliases.split(',')

相关问题