Perl,Ruby,Python,Javascript/ecmascript,PHP在开源,开放文档,多平台等方面都很相似.
Perl有 http://www.perl.org
Ruby有 http://www.ruby-lang.org
Python有 http://www.python.org
PHP有http://php.net
是否有与其他语言相同的javascript"主页"?当我说"家"时,我指的是官方文档,规范,语言源代码,示例等的首选地.
有没有办法在替换中使用变量作为修饰符?
my $search = 'looking';
my $replace = '"find: $1 ="';
my $modifier = 'ee';
s/$search/$replace/$modifier;
Run Code Online (Sandbox Code Playgroud)
我需要使用哈希数组来使用不同的修饰符进行批量搜索替换.
我对我认为是Python中列表的一个非常简单和直接的子类感到困惑.
假设我想要列表的所有功能.我想在列表的默认集中添加几个方法.
以下是一个例子:
class Mylist(list):
def cm1(self):
self[0]=10
def cm2(self):
for i,v in enumerate(self):
self[i]=self[i]+10
def cm3(self):
self=[]
def cm4(self):
self=self[::-1]
def cm5(self):
self=[1,2,3,4,5]
ml=Mylist([1,2,3,4])
ml.append(5)
print "ml, an instance of Mylist: ",ml
ml.cm1()
print "cm1() works: ",ml
ml.cm2()
print "cm2() works: ",ml
ml.cm3()
print "cm3() does NOT work as expected: ",ml
ml.cm4()
print "cm4() does NOT work as expected: ",ml
ml.cm5()
print "cm5() does NOT work as expected: ",ml
Run Code Online (Sandbox Code Playgroud)
输出:
Mylist: [1, 2, 3, 4, 5]
cm1() works: [10, …Run Code Online (Sandbox Code Playgroud) 这些<<=和|=运算符对Python意味着什么?我猜他们是按位运算符.我知道运算符|(按位或)和<<(位移),但我不知道它们与...结合=.
我在这段代码中找到了它.下面的代码属于该代码.
commandout = adcnum
commandout |= 0x18 # start bit + single-ended bit
commandout <<= 3 # we only need to send 5 bits here
for i in range(5):
if (commandout & 0x80):
GPIO.output(mosipin, True)
else:
GPIO.output(mosipin, False)
commandout <<= 1
GPIO.output(clockpin, True)
GPIO.output(clockpin, False)
Run Code Online (Sandbox Code Playgroud) 在Python中,可以有一个列表(类似于swift中的数组):
>>> li=[0,1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
并在列表的任何/所有列表上执行切片分配:
>>> li[2:]=[99] # note then end index is not needed if you mean 'to the end'
>>> li
[0, 1, 99]
Run Code Online (Sandbox Code Playgroud)
Swift有一个类似的切片赋值(这在swift交互式shell中):
1> var arr=[0,1,2,3,4,5]
arr: [Int] = 6 values {
[0] = 0
[1] = 1
[2] = 2
[3] = 3
[4] = 4
[5] = 5
}
2> arr[2...arr.endIndex-1]=[99]
3> arr
$R0: [Int] = 3 values {
[0] = 0
[1] = 1
[2] = 99
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但是,有几个问题.
首先,swift不适用于空列表,或者索引是否在 …
鉴于:
arr=[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
0 1 2 3 4 5 6 7 8 9 # index of arr
Run Code Online (Sandbox Code Playgroud)
在Python中,通过组合enumerate和if列表理解中的子句,可以选择或拒绝给定该元素索引的列表元素:
除第三项外的所有项目:
>>> [e for i,e in enumerate(arr) if i%3]
[20, 30, 50, 60, 80, 90]
Run Code Online (Sandbox Code Playgroud)
列表中的每三个项目:
>>> [e for i,e in enumerate(arr) if not i%3]
[10, 40, 70, 100]
Run Code Online (Sandbox Code Playgroud)
或者,更简单,有一个切片:
>>> arr[::3]
[10, 40, 70, 100]
Run Code Online (Sandbox Code Playgroud)
> arr.each_with_index.reject { |e,i| i%3==0 }
=> [[20, 1], [30, …Run Code Online (Sandbox Code Playgroud) 一个递归函数,它接受一个整数并对其进行洗牌.从前面抽出一位数字,从后面抽出一位数字,然后从前面抽出第二个数字,从后面抽出第二个数字,依此类推,直到洗牌后的数字与原始数字相同.
例如,123456将打印为162534或130将打印为103.任何帮助将不胜感激.
在字符串上,很容易,需要整数的建议.
A = '130'
def shuffle(A):
if len(A) <= 2:
return A
return (A[0] + A[-1]) + shuffle(A[1:-1])
Run Code Online (Sandbox Code Playgroud)
产量:103
>>> li = [1, 2, 3, 4]
>>> li
[1, 2, 3, 4]
>>> del li[2] #case 1
>>> li
[1, 2, 4]
>>> del(li[2]) # case 2
>>> li
[1, 2]
>>> del (li[1]) # case 3
>>> li
[1]
>>>
Run Code Online (Sandbox Code Playgroud)
我的一位教授使用案例2从列表中删除项目.
根据python文档案例1是正确的,并且此答案中还存在另一种语法方式,因此案例3也正确,但据我所知,python中不存在del方法,案例2如何有效.我搜索了整个python文档,但找不到它.
更新: 如果我自己在我的模块中编写del方法并同时使用案例2,python解释器如何区分它们或者它将通过错误,尽管我从未尝试过
假设我有一个(愚蠢的例子)脚本:
#!/bin/bash
st="one two three"
[[ $st =~ ^([[:alpha:]]+)[[:space:]]([[:alpha:]]+)[[:space:]]([[:alpha:]]+) ]]
for i in "${BASH_REMATCH[@]}"
do
echo "$i"
done
Run Code Online (Sandbox Code Playgroud)
它按预期工作 - 它打印:
one two three
one
two
three
Run Code Online (Sandbox Code Playgroud)
这是每个匹配组的总体匹配.但是,如果我去shell并输入:
$ st="one two three"
$ [[ $st =~ ^([[:alpha:]]+)[[:space:]]([[:alpha:]]+)[[:space:]]([[:alpha:]]+) ]]
$ for i in "${BASH_REMATCH[@]}"
> do
> echo "$i"
> done
Run Code Online (Sandbox Code Playgroud)
它打印:
w
Run Code Online (Sandbox Code Playgroud)
如果我做
$ [[ $st =~ ^([[:alpha:]]+)[[:space:]]([[:alpha:]]+)[[:space:]]([[:alpha:]]+) ]] && arr=( "${BASH_REMATCH[@]}" )
Run Code Online (Sandbox Code Playgroud)
我然后可以通过副本循环BASH_REMATCH中arr显示出比赛的作品确定.但是BASH_REMATCH在Bash 3.2上的交互式shell使用中似乎发生了一些事情.在成功比赛之后.
这是3.2.57(1)-releasemacOS Sierra 10.12.1 的默认设置
如果我启动Bash 4.4,一切正常.
想法? …
如何快速找到数组中某行元素的最小或最大和?
例如:
1, 2
3, 4
5, 6
7, 8
Run Code Online (Sandbox Code Playgroud)
最小和为第0行(1 + 2),最大和为第3行(7 + 8)
print mat.shape
(8, 1, 2)
print mat
[[[-995.40045 -409.15112]]
[[-989.1511 3365.3267 ]]
[[-989.1511 3365.3267 ]]
[[1674.5447 3035.3523 ]]
[[ 0. 0. ]]
[[ 0. 3199. ]]
[[ 0. 3199. ]]
[[2367. 3199. ]]]
Run Code Online (Sandbox Code Playgroud) python ×6
arrays ×2
python-3.x ×2
bash ×1
javascript ×1
list ×1
macos ×1
modifier ×1
numpy ×1
performance ×1
perl ×1
reference ×1
regex ×1
ruby ×1
subclass ×1
substitution ×1
swift ×1
swift2 ×1
variables ×1