如何打印列表的以下对象

时间:2015-12-23 02:14:40

标签: python

我有以下列表:

lst = ['Daniel', '2', 'daniel@outlook.com', 'Jay', '1212', 'jay@siber.com']

正如您所看到的那样,它显示了一个数字和一封电子邮件,假设数字2和daniel@outlook.com只是Daniel“属性”。

如何构建一个允许我从raw_input打印这些内容的函数,例如:

n = str(raw_input("Enter the name on the list:"))
if n in lst:
   print(...) #(2 and daniel@outlook.com) 
else:
   print("Name is not on the List")

它也必须像杰伊一样工作。是否有可能做到这一点?

由于

5 个答案:

答案 0 :(得分:3)

最好将数据结构更改为字典,而不是:

lst = ['Daniel', '2', 'daniel@outlook.com', 'Jay', '1212', 'jay@siber.com']
你会得到:

dct = {'Daniel': ('2', 'daniel@outlook.com'), 'Jay': ('1212', 'jay@siber.com')}

然后,你可以完全按照你写的那样做:

if name in dct:
    print dct[name]

修改

创建字典:

names = lst[::3]
numbers = lst[1::3]
emails = lst[2::3]
dct = {name: (number, email)
       for name, number, email
       in zip(names, numbers, emails)}

答案 1 :(得分:1)

考虑使用字典而不是列表:

names = {'Daniel':['2', 'daniel@outlook.com'], 'Jay': ['1212', 'jay@siber.com']}
n=raw_input("Enter the name on the list:")   ## Your input statement 
print(names.get(n, "Name is not in the list"))

这也将消除对if检查的需要。

<强>输出:

>>> 
Enter the name on the list:Daniel
['2', 'daniel@outlook.com']

>>> 
Enter the name on the list:df
Name is not in the list

答案 2 :(得分:0)

您可能希望使用列表字典,例如:

lst = {'Daniel': ('2', 'daniel@outlook.com'), 'Jay': ('1212', 'jay@siber.com')}

然后在你的函数中使用:

if n in lst:
    print(lst[n])

答案 3 :(得分:0)

我会先将您的列表转换为名称上的字典:

import itertools

def grouper(iterable, n):
    args = [iter(iterable)] * n
    return itertools.izip_longest(*args)

lst = ['Daniel', '2', 'daniel@outlook.com', 'Jay', '1212', 'jay@siber.com']

dlst = dict([(name, (num, email)) for name, num, email in grouper(lst, 3)])

然后,您可以在输入输入时查找dict中所需的值:

print(dlst.get(raw_input('Enter the name on the list: '),
               "Name is not in the list"))

答案 4 :(得分:0)

其他更快,但无论如何我都会发布我的答案,因为我包含了以漂亮的方式打印它的功能

dict = {'Daniel': ['daniel@outlook.com', '2'], 'Jay': ['jay@siber.com', '1212']}

def func():
    name = raw_input("Enter the name on the list: ")
    if name in dict:
        print ', '.join(dict[name])
    else:
        print "Name was not found"

结果:

>>> func()
Enter the name on the list: Daniel
daniel@outlook.com, 2
>>> func()
Enter the name on the list: dsgd
Name was not found