【问题标题】:How to get a specific item from python list [duplicate]如何从python列表中获取特定项目[重复]
【发布时间】:2016-08-10 11:16:54
【问题描述】:
class Barcode:

    def __init__(self, code, code_id = None):
        self.code = code
        self.id = code_id  

我有一个条形码列表。如何获取具有特定 ID 的条形码?

【问题讨论】:

  • 列表是否按id排序?
  • 另外,您是否考虑使用 id=>barcode 的字典而不是列表来存储代码?
  • 每个 id 都是唯一使用 uuid.uuid4().hex 生成的,我只想从列表中获取它:选择条形码 wherebarcode.id =something
  • 使用字典。这是列表的可怕用途。另外,考虑使用新式类。我怀疑你甚至应该使用 Python 2,但你当然不应该将它与旧式类一起使用。

标签: python python-2.7


【解决方案1】:

如果您的BarcodeList 没有排序,我建议使用残酷的方法:

def find_item(id):
    for item in BarcodeList:
        if item.id == id:
            return item

如果是排序的,见What is the best way to get the first item from an iterable matching a condition?

PS:为什么不用dict?它是为做这种工作而生的。

【讨论】:

  • @Mitch 我不认为这是一个 明显 重复,因为列表不需要排序。对于没有排序的情况,能否提供更好的方法?添加残酷的方法只是为了完整性。
  • @Mitch 好吧,你的答案更好,我真的认为你应该在这里发布答案。
  • @Mitch 你是对的。似乎该问题下方的答案可以帮助这个OP很多。投票结束。
猜你喜欢
  • 2011-11-22
  • 1970-01-01
  • 2021-05-25
  • 2020-07-14
  • 2018-07-25
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
相关资源
最近更新 更多