【问题标题】:Input points to certain elements in a list of tuples输入指向元组列表中的某些元素
【发布时间】:2013-03-20 09:54:44
【问题描述】:

我有一个元组列表如下:

EXCHANGE_DATA = [('AIA', 'Auckair', 1.50),
                 ('AIR', 'Airnz', 5.60),
                 ('AMP', 'Amp',3.22), 
                 ('ANZ', 'Anzbankgrp', 26.25),
                 ('ARG', 'Argosy', 12.22),
                 ('CEN', 'Contact', 11.22),
                 ('CNU', 'Chorus',3.01),
                 ('DIL', 'Diligent', 5.3),
                 ('DNZ', 'Dnz Property', 2.33),
                 ('EBO', 'Ebos', 1.1)]

我想要做的是让用户在这些以逗号分隔的元组(例如 AIA、AIR、AMP)中输入一系列代码(每个元组中的第一个元素),并让程序返回整个元组输入是指。例如,如果输入是 AIA、AIR、AMP,程序将返回:

('AIA', 'Auckair', 1.50)
('AIR', 'Airnz', 5.60)
('AMP', 'Amp',3.22)

我对编程比较陌生,因此我们将不胜感激。

【问题讨论】:

    标签: input python-3.x tuples


    【解决方案1】:

    您应该创建一个帮助字典。这是避免嵌套循环的好技巧。

    >>> EXCHANGE_DATA = [('AIA', 'Auckair', 1.50),
    ...                  ('AIR', 'Airnz', 5.60),
    ...                  ('AMP', 'Amp',3.22), 
    ...                  ('ANZ', 'Anzbankgrp', 26.25),
    ...                  ('ARG', 'Argosy', 12.22),
    ...                  ('CEN', 'Contact', 11.22),
    ...                  ('CNU', 'Chorus',3.01),
    ...                  ('DIL', 'Diligent', 5.3),
    ...                  ('DNZ', 'Dnz Property', 2.33),
    ...                  ('EBO', 'Ebos', 1.1)]
    >>> inp = "AIA,AIR,AMP"     # could come from input()
    >>> exchange_dict = {i[0]:i for i in EXCHANGE_DATA}
    >>> [exchange_dict[x] for x in inp.split(',')]
    [('AIA', 'Auckair', 1.5), ('AIR', 'Airnz', 5.6), ('AMP', 'Amp', 3.22)]
    

    如果输入可以包含额外的空格,你可以像这样去掉它们

    >>> [exchange_dict[x.strip()] for x in inp.split(',')]
    [('AIA', 'Auckair', 1.5), ('AIR', 'Airnz', 5.6), ('AMP', 'Amp', 3.22)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 2021-08-18
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      相关资源
      最近更新 更多