小编beo*_*ver的帖子

python解析wifi SSID数据

我目前有以下内容.但是我注意到如果SSID包含一个空格,那么排序就会消失:

import subprocess
import csv

process = subprocess.Popen(['/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport', '-s'], stdout=subprocess.PIPE)
stdout, stderr = process.communicate()

reader = csv.DictReader(stdout.decode('ascii').splitlines(),
                        delimiter=' ', skipinitialspace=True,
                        fieldnames=['wifi_name', 'mac', 'strength'])

for row in reader:
    print(row)
Run Code Online (Sandbox Code Playgroud)

我的目标是存储SSID,mac地址和信号强度,以便将其与电子表格进行比较.

python parsing wifi

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

Python one liner?如果x在y中,则执行x

numbers = [1,2,3,4,5,6,7,8,9]
number = 1
Run Code Online (Sandbox Code Playgroud)

我可以在一行上写下以下内容吗?

if number in numbers:
    print number
Run Code Online (Sandbox Code Playgroud)

使用红宝石的风格:

puts number if numbers.include?(number)
Run Code Online (Sandbox Code Playgroud)

我试过了:

print number if number in numbers
Run Code Online (Sandbox Code Playgroud)

但语法无效.

ruby python

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

python向内置类型添加新方法

我如何编写可附加到字符串(或其他对象)的python函数?

例如:

"FOO".lower()
Run Code Online (Sandbox Code Playgroud)

他们如何收到投入?他们是发电机吗?

我会高兴地读到它,但我真的不知道我在寻找什么.

python function chaining

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

子类化双端队列时如何设置 maxlen

我正在尝试对双端队列进行子类化,但无法弄清楚如何设置 maxlen。

有没有__maxlen__

编辑:-以下是“坏”蟒蛇吗?

from collections import deque

class MinMax(deque):
    def __init__(self):
        deque.__init__(self, maxlen=2)

mm = MinMax()
Run Code Online (Sandbox Code Playgroud)

python subclass deque

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

Python中的模式匹配,元组和乘法

什么是减少这一系列元组的最佳方法

('x', 0.29, 'a')
('x', 0.04, 'a')
('x', 0.03, 'b')
('x', 0.02, 'b')
('x', 0.01, 'b')
('x', 0.20, 'c')
('x', 0.20, 'c')
('x', 0.10, 'c')
Run Code Online (Sandbox Code Playgroud)

成:

('x', 0.29 * 0.04 , 'a')
('x', 0.03 * 0.02 * 0.01, 'b')
('x', 0.20 * 0.20 * 0.10, 'c')
Run Code Online (Sandbox Code Playgroud)

编辑: X是一个常数,它是事先知道的,可以安全地忽略

并且可以将数据视为在上面显示的第三个元素上进行预排序.

我现在正在尝试使用operator.mul,以及大量的模式匹配和奇怪的lambda函数...但我确信必须有一个更简单的方法!

我可以说谢谢你的所有答案.他们每个人都很棒,而且超出了我的期望.我所能做的就是给他们所有人一个支持,并说声谢谢!

python tuples pattern-matching

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

在python中减少列表理解

是否有更好的方法来编写以下for循环?

my_list = []
for key in my_set_of_keys:
    for val1,val2 in my_dict[key]:
        my_list.append((key,val2,val1))
Run Code Online (Sandbox Code Playgroud)

我的尝试也许......有点散漫......

my_list = list(chain.from_iterable(map(
    lambda key: [(key,val2,val1) for (val1,val2) in my_dict[key]],
    my_set_of_keys)))

my_list = reduce(lambda x,y: x+y,(map(
    lambda key: [(key,val2,val1) for (val1,val2) in my_dict[key]],
    my_set_of_keys)))

my_list = reduce(list.__add__, (map(
    lambda key: [(key,val2,val1) for (val1,val2) in my_dict[key]],
    my_set_of_keys)))
Run Code Online (Sandbox Code Playgroud)

my_dict看起来像这样:

'keyA' : { ('foo',1), ('bar',2), ('baz',3) }
'keyB' : { ... }
Run Code Online (Sandbox Code Playgroud)

my_set_of_keys:

{ 'keyA', 'keyC', ... } 
Run Code Online (Sandbox Code Playgroud)

python reduce for-loop nested list-comprehension

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

是否可以将字符串方法视为函数?

是否可以为方法编写包装函数?

>>> lowtide = [ 'oh', 'i', 'do', 'like', 'to', 'be', 'beside', 'the', 'seaside' ]

>>> [ x.capitalize() for x in lowtide ]
['Oh', 'I', 'Do', 'Like', 'To', 'Be', 'Beside', 'The', 'Seaside']

>>> list(map(lambda x: x.capitalize(), lowtide))
['Oh', 'I', 'Do', 'Like', 'To', 'Be', 'Beside', 'The', 'Seaside']


>>> def mef(m):
...     def _mef(m,x):
...         return x.m()
...     return partial(_mef, m)
... 
>>> list(map(mef(capitalize), lowtide))

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'capitalize' is not defined
Run Code Online (Sandbox Code Playgroud)

python methods function

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

为什么clojure会返回1N而不是1?

;; ------------------------- DICE COEFFS ------------------------

(defn dice-set-coeff [a b]
  (* (/ (count (clojure.set/intersection a b))
        (+ (count a) (count b)))
     2))

(defn dice-lst-coeff [a b]
  (dice-set-coeff (set a) (set b)))

;; ------------------------- BIGRAMS ----------------------------

(defn now-nxt [xs]
  "im sure there is a better way to write this"
  (map #(list %1 %2) xs (rest xs)))

(defn bigram [xs]
  (list now-nxt xs))

(defn dice-string-bigram [a b]
  (dice-lst-coeff (bigram a) (bigram b)))
Run Code Online (Sandbox Code Playgroud)

为什么我在结果中获得1N?

tst.core> (dice-string-bigram "hello" "hello")
1N
tst.core> (dice-string-bigram "hello" "helap")
1/2 …
Run Code Online (Sandbox Code Playgroud)

math clojure return-value

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

Python默认/未命名方法

是否可以创建具有以下属性的python对象:

class Foo:
  def __default_method__(x):
      return x

f = Foo()
f(10)
> 10
Run Code Online (Sandbox Code Playgroud)

也就是说,一个实例化的对象允许在不需要显式方法名称的情况下调用方法?

python class object

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

plpgsql中case语句的返回值

如何从使用语句的用户定义函数设置值(或直接返回值)case

create function is_bar(email varchar) returns boolean as
$$
declare returnValue boolean;
begin
  select case when exists
  (select * from (users join user_roles on users.userID = user_roles.userID)
  where user_email=email and user_role='bar')
    then (returnValue := TRUE);
    else (returnValue := FALSE);
  end;
  return returnValue;
end;
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)

给我:

ERROR:  syntax error at or near ":="
LINE 8: then (returnValue := TRUE);
Run Code Online (Sandbox Code Playgroud)

sql postgresql case syntax-error plpgsql

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