在Dictionary中为Value添加1

时间:2016-07-15 04:02:45

标签: python dictionary key updates key-value

我已经看到了在字典中为值添加1的其他方法。 当我尝试将值1添加到python中的字典键值时,我只是一直收到错误。

这是我的代码:

arr = {('1', '20'): [0], ('15', '14'): [0]}

我想将1添加到密钥(' 1',' 20')。

这是我的代码:

w = 1
x = 20
arr[(w, x)] += 1

我收到错误代码:

TypeError: 'int' object is not iterable

我根本不知道自己做错了什么。非常感谢任何建议。

1 个答案:

答案 0 :(得分:3)

两个问题:

  1. 你的字典的键是字符串元组,但是你试图使用一个整数元组索引到字典中。
  2. 字典中的值是(1长)整数列表,但您尝试在其中一个列表中添加数字。
  3. 你可能想要这样的东西:

    `cout << "\n Enter design temp. in degF: ";
    float designTemp;
    cin.clear(); cin.ignore(10000, '\n'); cin >> designTemp;
    
    map<float, float> ferriticsteels_Y = { {900, 0.4}, {950, 0.5}, {1000, 0.7} };
    
    if (ferriticsteels_Y.find(designTemp) != ferriticsteels_Y.end())
    {
        float coeff_Y = ferriticsteels_Y[designTemp];
        cout << "\n Y: " << coeff_Y << endl;
    }
    if (designTemp < ferriticsteels_Y.begin()->first)
    {
        float coeff_Y = ferriticsteels_Y.begin()->second;
        cout << "\n Y: " << coeff_Y << endl;
    }
    if (designTemp > ferriticsteels_Y.rbegin()->first)
    {
        float coeff_Y = ferriticsteels_Y.rbegin()->second;
        cout << "\n Y: " << coeff_Y << endl;
    }
    
    auto lower = ferriticsteels_Y.lower_bound(designTemp) == ferriticsteels_Y.begin() ? ferriticsteels_Y.begin() : --(ferriticsteels_Y.lower_bound(designTemp));
    auto upper = ferriticsteels_Y.upper_bound(designTemp);
    float coeff_Y = lower->second + (upper->second - lower->second) * float(designTemp - lower->first)/fabs(upper->first - lower->first);
    
    time_t rawtime_end;
    struct tm * timeinfo_end;
    time(&rawtime_end);
    timeinfo_end = localtime(&rawtime_end); 
    cout << "\n" << asctime(timeinfo_end);
    
    cout << "\nEnter any character and hit enter to exit: ";
    char ans;
    //cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); cin >> ans;...giving error at 'max()'
    cin.clear(); cin.ignore(10000, '\n'); cin >> ans;
    
    return 0;}` 
    

    如果没有看到更多代码,可能需要更多类似的内容:

    w = '1'
    x = '20'
    arr[(w, x)][0] += 1