小编Eb9*_*207的帖子

在字典中查找最高值

我是编程新手,目前参加CSC 110课程.我们的任务是创建一组函数,使用给定的一些数据执行各种操作.我已经把所有数据都放到了字典中,但是我在获取我想要的数据时遇到了一些麻烦.

这是我的问题:

我有一个字典,存储了一堆国家,后面是一个包含人口和GDP的列表.格式化这样的东西

{'country': [population, GDP], ...}
Run Code Online (Sandbox Code Playgroud)

我的任务是遍历这个并找到人口或GDP最高的国家然后打印:

'The country with the highest population is ' + highCountry+\
    ' with a population of ' + format(highPop, ',.0f')+'.')
Run Code Online (Sandbox Code Playgroud)

为了做到这一点,我写了这个函数(这个函数专门用于最高人口,但它们看起来都是一样的).

def highestPop(worldInfo):
        highPop = worldInfo[next(iter(worldInfo))][0] #Grabs first countries Population
        highCountry = next(iter(worldInfo))#Grabs first country in worldInfo

        for k,v in worldInfo.items():
                if v[0] > highPop:
                    highPop = v[0]
                    highCountry = k

        return highPop,highCountry
Run Code Online (Sandbox Code Playgroud)

虽然这对我有用,但我认为有一种更简单的方法可以做到这一点.另外,我不是100%确定如何[next(iter(worldInfo))]运作.这只是抓住它看到的第一个值吗?

感谢您的帮助!

编辑:对不起我想我不清楚.我需要通过国家人口以及国家名称.所以我可以在我的主要功能中打印它们.

python computer-science dictionary

13
推荐指数
3
解决办法
1364
查看次数

Python 3中的真正私有变量

所以我知道在python中创建变量"private"的方法如下:

class Foo:
    def __init__(self):
        self.__private = 'bar'
Run Code Online (Sandbox Code Playgroud)

这"有效",但没有,如下所示:

foo = Foo()
'__private' in vars(foo) #False
'_Foo__private' in vars(foo) #True
Run Code Online (Sandbox Code Playgroud)

现在,我明白这是在python中创建私有变量的方法,我喜欢这种方式.它可以让你裂伤名,使无意外子类覆盖此(因为它和类的名称开头),而没有人会不小心使用它.如果您知道自己在做什么,它还可以让您更改私有变量.此外,这是最好的方法,因为真正的私有变量是不可能的.

或者我想.

最近,我正在阅读PEP 8,我看到了这一行:

我们在这里不使用术语"私有",因为在Python中没有属性是真正私有的(没有通常不必要的工作量).

该引用可在PEP 8Designing for Inheritance部分中找到.

注意短语"没有通常不必要的工作量".我现在确定必须有一种方法可以在python中获得真正的私有变量.我该怎么办?

我试过覆盖__getattribute__,但问题是无法判断呼叫是否来自类内部(我知道).

此外,该__dict__属性在尝试执行此操作时很烦人,因为它包含对所有实例变量的引用.

我也想过元类,但那些似乎有同样的问题__getattribute__.

思考?


注意: 我知道在python中创建真正的私有变量的任何方法都不应该在高效的代码中完成.我只是想知道它是如何做到.

python scope private

8
推荐指数
2
解决办法
626
查看次数

在Mac OS上设置tkinter图标

我正在尝试更改我的Mac OS应用程序上显示的图标.我最后一次检查此代码适用于Windows.目标是使此解决方案适用于所有平台.

root = tk.Tk()
app = Application(master=root)

app.master.iconbitmap("my_icon.ico")

app.mainloop()
Run Code Online (Sandbox Code Playgroud)

代码正在添加.pdf文件的默认图标,这不是我的意图.通往的路径my_icon.ico是正确的.为什么这不适用于Mac OS?是否有跨平台工作的终极解决方案?

python macos icons cross-platform tkinter

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

如何生成随机数,每个随机数至少与所有其他元素相差x?

我知道这违反了随机数的定义,但我仍然需要这个项目.例如,我想生成一个包含5个随机元素的数组range(0, 200).

现在,我希望每个元素之间的差异至少为15.所以随机数组看起来应该是这样的:

[15, 45, 99, 132, 199]
Run Code Online (Sandbox Code Playgroud)

我可以使用numpy生成随机数:

np.random.uniform(low=0, high=200, size=5)
Run Code Online (Sandbox Code Playgroud)

但是,我无法保持至少15的一致差异.

python random numpy

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

运行时错误:创建图像太早

我正在尝试创建一个图像库并从该图像库中调用图像tkinter。但是这段代码给了我一个错误:

这是图像库文件img.py

from tkinter import *
food_0001 = PhotoImage(file='food_0001.gif')
food_0002 = PhotoImage(file='bg.gif')
Run Code Online (Sandbox Code Playgroud)

这是用于打开存储在以下位置的图像的文件img.py

from tkinter import *
import img

window = Tk()
window.title('image')
canvas = Canvas(window, width = 800, height = 800)
canvas.pack()
canvas.create_image(0,0, anchor=NW, image=food_0001)

window.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter python-imaging-library

6
推荐指数
1
解决办法
2万
查看次数

是否可以在 tkinter 中更改按钮颜色?

我正在使用 Python 的 tkinter 模块,我想仅在按下按钮时更改按钮的颜色。所以举个例子,通常按钮是白色的,但是当我按下它时,它会变成绿色。如果我停止按下它,它会变回白色。那可能吗?

tkinter python-3.x

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