【问题标题】:Create dict from list of strings by spiting text from number and using it for key: value pairs通过从数字中吐出文本并将其用于键:值对来从字符串列表创建字典
【发布时间】:2020-04-25 21:48:27
【问题描述】:

我有一个字符串列表:

list = ['FL9000', 'OV255', 'MK0029']。我想通过从每个字符串元素中获取键的前两个字符来创建一个字典,并将元素本身附加为一个值。

我的结果应该是这样的:

dict = {'FL': 'FL9000', 'OV': 'OV255'} 等等。

【问题讨论】:

  • 在 [pyhton] 中有数百篇关于如何对字符串或列表进行切片以及如何创建字典的帖子。你试图做什么来解决这个问题?为什么所有这些帖子对您没有帮助?
  • 从逻辑上考虑。您有一个可以迭代的元素列表。对于每个元素,您可以拆分字符串(因为您知道前两个字符是您的键)。您可以相应地将前半部分和后半部分添加到字典中。
  • 是的,我的逻辑和你的很相似。实现代码本身是我做不到的,或者我只是处理它。请不要因为我的问题生我的气。在决定在这里写我的问题之前,我至少阅读了 40 页。

标签: python regex dictionary split


【解决方案1】:

你可以这样做

l = ['FL9000', 'OV255', 'MK0029']
d = {}

for i in l: 
   d[i[0:2]] = i


d 
Out[14]: {'FL': 'FL9000', 'OV': 'OV255', 'MK': 'MK0029'}

【讨论】:

    【解决方案2】:

    你可以使用:

    l = ['FL9000', 'OV255', 'MK0029']
    d = {x[0:2]: x for x in l}
    # {'FL': 'FL9000', 'OV': 'OV255', 'MK': 'MK0029'}
    

    注意事项:

    • Demo
    • 不应将内置函数名称用作变量(字典、列表)

    【讨论】:

    • 谢谢,已经成功了。我有一个问题 - 我的列表包括 2000 多个字符串,但是在执行上面的代码时,结果总是只返回 4 个键:值对。这是为什么呢?
    • 不客气,如果我的回答对您有帮助,请考虑通过单击复选标记 ✅ 接受它作为正确答案,谢谢!这是处理更多项目的代码trinket.io/python3/84cd6f137c - 您可以考虑使用我的答案中的代码,打开另一个问题并在此处发布网址,以便我为您提供帮助。
    猜你喜欢
    • 2016-08-03
    • 2014-02-10
    • 2016-12-02
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    相关资源
    最近更新 更多