对不起,我没有说清楚我的问题。我有一个变量x,我一直在迭代,我想在字典中包含x及其相应的子字典。
例如,x表示公交车站号。 6号巴士站距离巴士起步站的距离为1,距离巴士的最后一站的距离为变量2。
由于我不知道我在任何时间在哪个公交车站,我没有字典中的所有信息。
我想从一个空字典开始并迭代地更新不同的电台距离信息。
d1={}
d1 = {1: {'a': variable1, 'b': variable2}, 2: {'a': variable3, 'b': variable4}}
我想通过添加子字典中的值('a'和'b'的值的总和)来向d1插入一个键:'c':'value'的值对,如下所示。< / p>
d1= {1: {'a': 11, 'b': 22, 'c': 'value'}, 2: {'a': 456, 'b': 789, 'c': 'value'}}
我希望公交车站每个'c'的值为
value = variable1 + variable2
value = variable3 + variable4
我希望我现在能够更好地澄清我的问题。这是我关于stackoverflow的第一个问题,我认为我没有清楚地说明我的问题。感谢您的回复。
答案 0 :(得分:2)
建立你几乎得到的东西..
d1[1]['c'] = d1[1]['a'] + d1[1]['b']
d1[2]['c'] = d1[2]['a'] + d1[2]['b']
这不是pythonic的做事方式(Ryan Stein的答案是),其他答案是。但这显示了另一种访问字典中值的方法。
答案 1 :(得分:1)
您可以尝试使用Python3:
d1= {1: {'a': 14, 'b': 16}, 2: {'a':15, 'b': 15}}
new_data = {a:{**{c:d for c, d in b.items()}, **{'c':sum(b.values())}} for a, b in d1.items()}
输出:
{1: {'a': 14, 'b': 16, 'c': 30}, 2: {'a': 15, 'b': 15, 'c': 30}}
答案 2 :(得分:1)
如果您希望每个词典条目的键'a'
和'b'
加总到'c'
的键中,那么for
循环就足够了和可读性。
d1 = {1: {'a': 11, 'b': 22}, 2: {'a': 456, 'b': 789}}
for item in d1.values():
item['c'] = item['a'] + item['b']
print(d1)
{1: {'a': 11, 'b': 22, 'c': 33}, 2: {'a': 456, 'b': 789, 'c': 1245}}
答案 3 :(得分:1)
迭代dict
。在内部dict
个对象中添加新密钥。
for key in d1:
d1.get(key)['c'] = sum(d1.get(key).values())
答案 4 :(得分:1)
d1= {1: {'a': 11, 'b': 22, 'c': 'value'}, 2: {'a': 456, 'b': 789, 'c': 'value'}}
# d1[1]['c']=33
# d1[2]['c']=1245
for numbers in d1:
total = d1[numbers]["a"] + d1[numbers]["b"]
d1[numbers]["c"] = total
print(d1[1]["c"])
print(d1[2]['c'])
答案 5 :(得分:0)
你可以通过列表理解来实现。总和,
<?php
include "db.php";
$student_id = $_POST['id'];
$year = $_POST['year'];
$month = $_POST['month'];
$day = $_POST['day'];
$date = $_POST['date'];
$sql = "INSERT INTO student_attendance(student_id,year,month,day,date,status) value('$student_id', '$year', '$month', '$day', '$date', '1') ";
$result = mysql_query($sql);
?>
答案 6 :(得分:0)
如果知道dict只有两级,则可以使用理解。
{k: dict(zip(v.keys() + ['c'], v.values() + [sum(v.values())])) for k,v in d1.items()}