小编use*_*225的帖子

迭代和改变字典

我在迭代和修改字典时遇到问题......

假设我有一本字典:

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)

python dictionary

4
推荐指数
1
解决办法
1822
查看次数

Python3:测试字典的所有值是否相等 - 当值未知时

我有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语句...

一些建议将不胜感激.

我已经看到了这个问题,但答案似乎都依赖于已经知道正在测试的值(即字典中的所有条目都等于已知数字) - 除非我遗漏了一些东西.

python dictionary python-3.x

2
推荐指数
3
解决办法
2628
查看次数

堆积条形图 - y 轴和第一个条形之间的空间:matplotlib.pyplot

我刚刚开始使用 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)

matplotlib python-3.x

1
推荐指数
1
解决办法
3283
查看次数

刺在matplotlib中的位置

我有一个情节: 在此处输入图片说明

但我希望刻度线位于零轴(如正常图形中所示)。我已经看到了这个例子,也这个例子,但我有问题:

如果我尝试:

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)

python matplotlib

1
推荐指数
1
解决办法
4757
查看次数

在barchart中显示堆积条上方的总数:matplotlib.pyplot

我刚开始使用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)

matplotlib python-3.x

0
推荐指数
1
解决办法
2427
查看次数

标签 统计

matplotlib ×3

python ×3

python-3.x ×3

dictionary ×2