【问题标题】:Accessing specific characters of dictionary values访问字典值的特定字符
【发布时间】:2020-08-25 11:50:06
【问题描述】:

我有一本字典,例如:

{
    apples.1: aaaaaaappplllllleeeeeeeeees,
    bananas.1: baaaanaaaaanaaaaaaaaaaasssssssss,
    strawberries.1: straaaawwwwwbeeeeerriiiiies
}

我想访问字典中每个值的1st10th15th 字符:

我正在寻找的输出类似于:

apples.1: a, p, l
bananas.1: b, a, a
strawberries.1: s, w, e

我知道对于字符串,我们可以使用类似:

a, b, c = some_str[0], some_str[9], some_str[14]

但我在字典方面超出了我的深度。

【问题讨论】:

  • 您的键和值周围缺少引号。

标签: python dictionary key-value


【解决方案1】:

您可以这样枚举字典的键和值:

d = {
    'apples.1': 'aaaaaaappplllllleeeeeeeeees',
    'bananas.1': 'baaaanaaaaanaaaaaaaaaaasssssssss',
    'strawberries.1': 'straaaawwwwwbeeeeerriiiiies'
}

for key, value in d.items():
    a, b, c = value[0], value[9], value[14]
    print(f'{key}: {a}, {b}, {c}')

打印:

apples.1: a, p, l
bananas.1: b, a, a
strawberries.1: s, w, e

【讨论】:

  • 谢谢!如果我的字典而不是 3 个键值 > 100,会发生什么?
  • 100 个键或每个键 100 个值?我并没有真正关注。
  • 一个项目只是一个键/值对。您打印 100 行。那么有什么问题呢?
【解决方案2】:

如果您执行dict[x],您将访问字典中键为 x 的值。 在您的情况下,该值是一个字符串,因此您可以使用例如操作此字符串:

dict[x][:2]

此片段将返回前两个字符。如果要选择第 n 个字符,请使用:

dict[x][n]

在您的具体示例中使用:

dict['apples.1'][2]

获取字符串的第三个字符

【讨论】:

    【解决方案3】:

    迪克= { 苹果:'aaaaaaappplllllleeeeeeeeeees', 香蕉:'baaaanaaaaaaaaaaaaaaaasssssssss', 草莓:'straaaawwwwwbeeeeerriiiiies' }

    Dic[apples]=Dic[apples][5]
    Dic[bananas]=Dic[bananas][5]
    Dic[bananas]=Dic[bananas][0:5]
    
    print(Dic)
    

    输出:

    {
            apples: 'a',
            bananas: 'a',
            strawberries: 'straa'
        }
    

    谢谢。

    【讨论】:

    • 如果您对答案感到满意,如果您投票,我将不胜感激。
    【解决方案4】:
    dict = {"apples" : "aaaaaaappplllllleeeeeeeeees", "bananas" : "baaaanaaaaanaaaaaaaaaaasssssssss", "strawberries" : "straaaawwwwwbeeeeerriiiiies"}
    
    x = list(d.values())  # I transformed dict values into list to be able to slice them
    print(x[0][0], x[0][10], x[0][15])
    print(x[1][0], x[1][10], x[1][15])
    print(x[2][0], x[2][10], x[2][15])
    

    输出

    a l l
    b a a
    s w e
    

    享受:-)

    【讨论】:

      【解决方案5】:

      您可以检索每个键的对应值,然后继续检索第 1、10 和 15 个值。

      像这样:

      dict = {
          "apples.1": "aaaaaaappplllllleeeeeeeeees",
          "bananas.1": "baaaanaaaaanaaaaaaaaaaasssssssss",
          "strawberries.1": "straaaawwwwwbeeeeerriiiiies"
      }
      
      for val in dict.values():
          first, tenth, fifteenth = val[0], val[9], val[14]
          print(first, tenth, fifteenth)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-09
        • 2018-07-05
        • 1970-01-01
        • 2015-07-09
        相关资源
        最近更新 更多