我在迭代和修改字典时遇到问题......
假设我有一本字典:
dict1 = {'A' : 'first', 'B' : 'second', 'C' : 'third', 'D' : 'fourth'}
Run Code Online (Sandbox Code Playgroud)
我想迭代 dict1,使用其中的数据构建第二个字典。一旦完成了 中的每个条目dict1,我就会将其删除。
在伪代码中:
dict2 = {}
for an entry in dict1:
if key is A or B:
dict2[key] = dict1[key] # copy the dictionary entry
if key is C:
do this...
otherwise:
do something else...
del dict1[key]
Run Code Online (Sandbox Code Playgroud)
我知道改变循环中可迭代的长度会导致问题,并且上述内容可能不容易实现。
这个问题的答案似乎表明我可以使用该keys()函数,因为它返回一个动态对象。我因此尝试过:
for k in dict1.keys():
if k == A or k == B:
dict2[k] = dict1[k]
elif k == C: …Run Code Online (Sandbox Code Playgroud) 我有2个字典:每个字典中的值都应该相等.
但我不知道这个数字是多少......
dict1 = {'xx':A, 'yy':A, 'zz':A}
dict2 = {'xx':B, 'yy':B, 'zz':B}
Run Code Online (Sandbox Code Playgroud)
NB A不等于B
N.B. A和B实际上都是十进制数字的字符串(例如'-2.304998'),因为它们是从文本文件中提取的
我想创建另一个字典 - 有效地总结这些数据 - 但前提是每个字典中的所有值都相同.
即
summary = {}
if dict1['xx'] == dict1['yy'] == dict1['zz']:
summary['s'] = dict1['xx']
if dict2['xx'] == dict2['yy'] == dict2['zz']:
summary['hf'] = dict2['xx']
Run Code Online (Sandbox Code Playgroud)
有一种巧妙的方式在一行中这样做吗?
我知道可以使用理解创建一个字典,
summary = {k:v for (k,v) in zip(iterable1, iterable2)}
但我正在努力与底层for循环和if语句...
一些建议将不胜感激.
我已经看到了这个问题,但答案似乎都依赖于已经知道正在测试的值(即字典中的所有条目都等于已知数字) - 除非我遗漏了一些东西.
我刚刚开始使用 matplotlib.pyplot 并且有点卡住了。
使用 matpltlib.pyplot 文档中的示例,我创建了一个堆积条形图
使用以下代码:
import numpy as np
import matplotlib.pyplot as plt
N = 7
OECD = (242, 244, 255, 263, 269, 276, 285)
NonOECD = (282, 328, 375, 417, 460, 501, 535)
Sum = ('524', '572', '630', '680', '729', '777', '820')
ind = np.arange(N)
width = 0.5
p1 = plt.bar(ind, NonOECD, width, color = 'r')
p2 = plt.bar(ind, OECD, width, color = 'b', bottom = NonOECD)
plt.ylabel('Quadrillion Btu')
plt.title('World Total Energy Consumption 2010 - 2040')
plt.xticks(ind+width/2., …Run Code Online (Sandbox Code Playgroud) 我有一个情节:

但我希望刻度线位于零轴(如正常图形中所示)。我已经看到了这个例子,也这个例子,但我有问题:
如果我尝试:
import matplotlib.pyplot as plt
import numpy as np
def f(t):
A = 2409.505
rho = 0.3260
C = 0.00
if C == 0.0:
return (A*np.exp(-t/rho))
else:
return (A*np.exp(-t/rho)) - (C/r**6)
t1 = np.arange(0, 15, 0.01)
plt.xlim(-1, 16)
plt.ylim(-500, 2500)
plt.spines['left'].setposition('0')
plt.spines['bottom'].setposition('0')
plt.plot(t1, f(t1), 'b', linewidth = '1.5')
plt.tick_params(top = 'off', right = 'off')
plt.grid(linestyle = '--', linewidth = 0.05)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我得到错误:
Traceback (most recent call last):
File "C:\Users\Rebecca\Downloads\pyplot_simple.py", line 16, in <module>
plt.spines['left'].setposition('0') …Run Code Online (Sandbox Code Playgroud) 我刚开始使用matplotlib.pyplot并且有点卡住了.
使用matpltlib.pyplot文档中的示例,我创建了一个堆积条形图
使用以下代码:
import numpy as np
import matplotlib.pyplot as plt
N = 7
OECD = (242, 244, 255, 263, 269, 276, 285)
NonOECD = (282, 328, 375, 417, 460, 501, 535)
Sum = ('524', '572', '630', '680', '729', '777', '820')
ind = np.arange(N)
width = 0.5
p1 = plt.bar(ind, NonOECD, width, color = 'r')
p2 = plt.bar(ind, OECD, width, color = 'b', bottom = NonOECD)
plt.ylabel('Quadrillion Btu')
plt.title('World Total Energy Consumption 2010 - 2040')
plt.xticks(ind+width/2., ('2010', '2015', '2020', '2025', …Run Code Online (Sandbox Code Playgroud)