小编vau*_*tah的帖子

41
推荐指数
4
解决办法
3万
查看次数

迭代Python 3中的字典items(),values(),keys()

如果我理解正确,在Python 2中,iter(d.keys())就像是一样d.iterkeys().但现在,d.keys()是一个视图,它位于列表和迭代器之间.视图和迭代器之间有什么区别?

换句话说,在Python 3中,有什么区别

for k in d.keys()
    f(k)
Run Code Online (Sandbox Code Playgroud)

for k in iter(d.keys())
    f(k)
Run Code Online (Sandbox Code Playgroud)

另外,这些差异如何在一个简单的for循环中显示(如果有的话)?

python dictionary iterator python-3.x

41
推荐指数
1
解决办法
9万
查看次数

在中断事件循环后清理的正确方法是什么?

我有一个事件循环,它运行一些协同例程作为命令行工具的一部分.用户可以使用通常的Ctrl+ 中断工具C,此时我想在中断的事件循环后正确清理.

这是我尝试过的.

import asyncio


@asyncio.coroutine
def shleepy_time(seconds):
    print("Shleeping for {s} seconds...".format(s=seconds))
    yield from asyncio.sleep(seconds)


if __name__ == '__main__':
    loop = asyncio.get_event_loop()

    # Side note: Apparently, async() will be deprecated in 3.4.4.
    # See: https://docs.python.org/3.4/library/asyncio-task.html#asyncio.async
    tasks = [
        asyncio.async(shleepy_time(seconds=5)),
        asyncio.async(shleepy_time(seconds=10))
    ]

    try:
        loop.run_until_complete(asyncio.gather(*tasks))
    except KeyboardInterrupt as e:
        print("Caught keyboard interrupt. Canceling tasks...")

        # This doesn't seem to be the correct solution.
        for t in tasks:
            t.cancel()
    finally:
        loop.close()
Run Code Online (Sandbox Code Playgroud)

运行此命令并达到Ctrl+ C收益率:

$ python3 asyncio-keyboardinterrupt-example.py …
Run Code Online (Sandbox Code Playgroud)

python python-3.4 python-asyncio

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

Python:使eval安全

我想要一种简单的方法在Python中执行"计算器API".

现在,我并不关心计算器将支持的确切功能集.

我希望它接收一个字符串,"1+1"并在我们的例子中返回一个包含结果的字符串"2".

有没有办法让eval这种东西安全?

首先,我会这样做

env = {}
env["locals"]   = None
env["globals"]  = None
env["__name__"] = None
env["__file__"] = None
env["__builtins__"] = None

eval(users_str, env)
Run Code Online (Sandbox Code Playgroud)

这样调用者就不会搞乱我的局部变量(或看到它们).

但我相信我在这里监督很多.

eval安全问题是否可以解决,或者是否存在太多微小的细节以使其正常工作?

python eval

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

滑动边栏菜单IOS 8 Swift

有没有办法在没有任何第三方库的IOS Swift中实现Slide Sidebar Menu(如Facebook应用程序)?我寻找解决方案,但我只创建了在Objective-C中实现的这个功能.

swift ios8

39
推荐指数
6
解决办法
8万
查看次数

在Python中复制嵌套列表

我想复制一个2D列表,这样如果我修改一个列表,另一个列表就不会被修改.

对于一维列表,我只是这样做:

a = [1, 2]
b = a[:]
Run Code Online (Sandbox Code Playgroud)

现在,如果我修改b,a不修改.

但这不适用于二维列表:

a = [[1, 2],[3, 4]]
b = a[:]
Run Code Online (Sandbox Code Playgroud)

如果我修改b,a也会被修改.

我该如何解决?

python copy list deep-copy

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

git add之后文件没有显示在git diff中.我怎么知道它会被提交?

我有一个未跟踪的文件没有出现在git diff中,当我将它添加到'changes to be committed'区域时,它仍然没有显示在git diff中.我展示了一个git status -v,当我做对头上的差异.

我仍然是git的新手,所以有人可以告诉我,如果文件将被提交,即使它没有出现在常规差异中,因为它已被添加到临时区域?

git file commit git-diff git-commit

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

从Python脚本获取当前目录的父级

我想从Python脚本中获取当前目录的父级.例如,我/home/kristina/desire-directory/scripts在这种情况下从欲望路径启动脚本/home/kristina/desire-directory

我知道sys.path[0]sys.但我不想解析sys.path[0]结果字符串.有没有其他方法可以在Python中获取当前目录的父级?

python sys sys.path

36
推荐指数
4
解决办法
7万
查看次数

如何使用语义UI CDN?

如何使用CDN将语义UI包含到HTML页面?CDN链接是https://cdnjs.com/libraries/semantic-ui,但如何使用它?

cdn semantic-ui

36
推荐指数
2
解决办法
4万
查看次数

将python中的不相等列表压缩到一个列表中,该列表不会删除正在压缩的较长列表中的任何元素

我有两个清单

a = [1,2,3]
b = [9,10]
Run Code Online (Sandbox Code Playgroud)

我想将这两个列表组合(zip)到一个列表c

c = [(1,9), (2,10), (3, )]
Run Code Online (Sandbox Code Playgroud)

Python中的标准库中是否有任何函数可以执行此操作?

python data-structures

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