在python中,是否有一个函数来检查给定的文件/目录是否是符号链接?例如,对于下面的文件,我的包装函数应该返回True.
# ls -l
total 0
lrwxrwxrwx 1 root root 8 2012-06-16 18:58 dir -> ../temp/
lrwxrwxrwx 1 root root 6 2012-06-16 18:55 link -> ../log
Run Code Online (Sandbox Code Playgroud) 是否可以使用python在列表中获取哪些值是重复的?
我有一个项目列表:
mylist = [20, 30, 25, 20]
Run Code Online (Sandbox Code Playgroud)
我知道删除重复项的最佳方法是set(mylist),但是有可能知道重复的是什么值吗?如您所见,在此列表中,重复项是第一个和最后一个值.[0, 3].
是否有可能在python中获得此结果或类似的东西?我试图避免做出一个荒谬的大if elif条件陈述.
如何比较下面python中的2个json对象是示例json.
sample_json1={
{
"globalControlId": 72,
"value": 0,
"controlId": 2
},
{
"globalControlId": 77,
"value": 3,
"controlId": 7
}
}
sample_json2={
{
"globalControlId": 72,
"value": 0,
"controlId": 2
},
{
"globalControlId": 77,
"value": 3,
"controlId": 7
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个简单的代码:
def get():
return [lambda: i for i in [1, 2, 3]]
for f in get():
print(f())
Run Code Online (Sandbox Code Playgroud)
正如我的python知识预期的那样,输出为3 - 整个列表将包含最后一个值i.但这是如何在内部工作的?
AFAIK,python变量只是对象的引用,因此第一个闭包必须包含对象的第一个i引用 - 这个对象肯定是1,而不是3 O_O.如何发生python闭包包含变量本身而不是对象这个变量引用?它是否将变量名称保存为纯文本,某些"变量引用"还是什么?
我被告知你可以使用PyPy来运行Python程序,因为它是使用JIT编译器编译而不是解释而快得多.
以下程序找到数字600851475143的最大素数因子:
import numpy as np
nr = 600851475143
n = 2
while n <= np.sqrt(nr):
if nr%n == 0:
nr = nr/n
n += 1
print(nr)
Run Code Online (Sandbox Code Playgroud)
使用PyPy运行它的程序是什么?
我知道他们的网站上有文档,但我不明白,并希望进行演示.
我无法将整数添加1到现有集合中.在交互式shell中,这就是我正在做的事情:
>>> st = {'a', True, 'Vanilla'}
>>> st
{'a', True, 'Vanilla'}
>>> st.add(1)
>>> st
{'a', True, 'Vanilla'} # Here's the problem; there's no 1, but anything else works
>>> st.add(2)
>>> st
{'a', True, 'Vanilla', 2}
Run Code Online (Sandbox Code Playgroud)
这个问题是两个月前发布的,但我认为它被误解了.我使用的是Python 3.2.3.
使用python,我想获得一个窗口标题,一个股票软件窗口.
当我浏览另一个股票时,窗口的标题会改变,现在我想每100ms扫描一次并返回新标题,但是窗口标题中的前面文本是相同的文本.
我可以在cmd中打印标题,但我不知道如何每100ms扫描一次并返回
我用这个代码:
from win32gui import * import re
titles = set()
titlekey = ''
def foo(hwnd,nouse):
if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
titles.add(GetWindowText(hwnd))
EnumWindows(foo, 0)
lt = [t for t in titles if t]
lt.sort()
for t in lt:
if re.match(titlekey,t):
print t
Run Code Online (Sandbox Code Playgroud)
如何扫描每100毫秒并在更改时返回新标题?
我需要创建一个活动来启动监视用户位置的服务,并且在某个区域内允许调用Activity更新其视图以通知用户.
由于有几种不同的方式来处理服务,我有点困惑的是哪一种对我的情况是正确的.
使用startService()和stopService()方法:从我的理解,我不能直接回到起始活动.在谷歌文档中有一个示例显示如何通过PendingIntent将BroadcastReceiver传递给服务并调用它,但我不认为允许我更新正在运行的活动的视图...或者它会吗?
绑定服务:从文档看来,这将允许服务和活动之间的双向通信,但也提到绑定服务不会无限期地在后台运行.现在我不需要甚至不想让服务无限期地运行,但在最糟糕的情况下,我可能需要它在bg中运行至少一两个小时而不会被杀死.
第三个(可能不是那么好)选项:在活动的线程中运行位置服务,这将使实时视图更新变得容易,然后在onPause事件中,停止活动中的位置服务并将其交给服务通过startService()并使用通知服务在输入定义的区域时提醒用户.
任何建议将不胜感激.
基于简单的列表理解:
yay = [ i for i in a if a[i] ]
nay = [ i for i in a if not a[i] ]
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法同时分配yay和nay值(即有条件的命中和未命中)?
看起来像这样的东西
( yay , nay ) = ...
Run Code Online (Sandbox Code Playgroud)
我对可读性和速度感到好奇(看到两个列表推导比单个for循环附加到列表中的速度快5%,我感到有些惊讶)
更新:
最初的例子是在dict中获取"true"和"false"有价值键的列表...
a = {i: i >= 50 for i in range(100)}
yay = [k for k, v in a.items() if v]
nay = [k for k, v in a.items() if not v]
Run Code Online (Sandbox Code Playgroud) 我为这个为python编写的函数感到震惊.我观察到,在较低的位置,while它会更改列表中的值,vctor即使该功能未触及该列表.我已经通过这对(10, [1,3,5,7,10]),它已将列表更改vctor为[1,3,5,8,10].对此有解释吗?
def siguiente(k,vctor):
l = len(vctor)
vctorsig = vctor
i = l-1
while i>= 0:
if vctorsig[i] <= k - l + i:
j=i
while j<=l-1:
print vctor
vctorsig[j] = vctor[i]+j-i+1
j=j+1
i = -1
else:
i = i-1
return vctorsig
Run Code Online (Sandbox Code Playgroud) python ×9
android ×1
arrays ×1
closures ×1
list ×1
pypy ×1
python-2.7 ×1
python-3.x ×1
set ×1
win32gui ×1