这篇文章主要围绕是否有一个Python函数可以在不重复某些元素的情况下进行排列?和python不重复字符串展开,旨在为您提供一份详细的参考资料。我们将全面介绍是否有一个Python函数可以在不重复某些
这篇文章主要围绕是否有一个 Python 函数可以在不重复某些元素的情况下进行排列?和python不重复字符串展开,旨在为您提供一份详细的参考资料。我们将全面介绍是否有一个 Python 函数可以在不重复某些元素的情况下进行排列?的优缺点,解答python不重复字符串的相关问题,同时也会为您带来c – 是否有一个(Linux)g相当于Visual Studio中使用的/ fp:precise和/ fp:fast标志?、Ruby 是否有一个 string.startswith("abc") 内置方法?、在 Python 中,是否有一个 Python 标准函数可以像 bash 一样将字符串解析为 argv 列表?、在某些相似性度量的意义上,是否有一个 python 函数来获取“唯一”字符串?的实用方法。
本文目录一览:- 是否有一个 Python 函数可以在不重复某些元素的情况下进行排列?(python不重复字符串)
- c – 是否有一个(Linux)g相当于Visual Studio中使用的/ fp:precise和/ fp:fast标志?
- Ruby 是否有一个 string.startswith("abc") 内置方法?
- 在 Python 中,是否有一个 Python 标准函数可以像 bash 一样将字符串解析为 argv 列表?
- 在某些相似性度量的意义上,是否有一个 python 函数来获取“唯一”字符串?
是否有一个 Python 函数可以在不重复某些元素的情况下进行排列?(python不重复字符串)
如何解决是否有一个 Python 函数可以在不重复某些元素的情况下进行排列?
我想制作一个掩码,它可以让我在给定的数据结构中采用某些值,而无需重复位置:
例如,如果我有:
[0,1,1]
随机选择的排列之一是:
[1,0]
我不希望数组中的位置 0 和 1 在下一个排列中使用:
[1,1] 不应被允许,因为位置 0 已被使用。
[0,1] 应该被允许,因为位置 0 和位置 1 没有被使用。
对于下一个排列,它不能占据位置 2 和 5,因为第二个排列已经占据了它,所以剩下的唯一选择是:
[0,0]
我不知道是否有内置函数可以让我做到这一点:
fun(value_options=[0,1],number_of_combinations_to_take=3)
# Output:
[ [1,0],[0,0] ]
提前致谢,祝您有美好的一天
PS:这个函数的目标是有一些排列允许我这样做:
a,b,c,d,e,f = [1,0]
Node(p +jumP*a,p + jumP*b,p + jumP*c,p + jumP*d,p + jumP*e,p + jumP*f)
所以我只能在某个方向移动一个函数。
解决方法
鉴于这些限制,与其生成详尽的排列列表,然后在事后对其进行过滤,我认为通过改组索引列表并从该列表中弹出元素来解决这个问题更有意义(没有重复)以生成掩码。
,
>>> import random
>>> def fun(v,n):
... i = list(range(len(v)))
... random.shuffle(i)
... m = sum(v)
... r = []
... for _ in range(n):
... p = [0] * len(v)
... for _ in range(m):
... p[i.pop()] = 1
... r.append(p)
... return r
...
>>> fun([0,1,1],3)
[[0,[0,0],[1,0]]
山姆打败了我,以防万一这对你有帮助
def fun(n,m=2):
assert n % m == 0 # n has to be a product of m
l = list(range(n))
random.shuffle(l)
one_places = [l[m*i:m*(i+1)] for i in range(n/m)]
ret = [[0]*n for _ in range(n/m)] # create lists with zeros
# now insert ones where we want
for i,p in enumerate(one_places):
for j in p:
ret[i][j] = 1
return ret
c – 是否有一个(Linux)g相当于Visual Studio中使用的/ fp:precise和/ fp:fast标志?
许多年前,我继承了一个使用Visual Studio(VC)标志’/ fp:fast’的代码库,在特定的计算重型库中生成更快的代码.不幸的是,’/ fp:fast’产生的结果与不同编译器(Borland C)下的同一个库略有不同.当我们需要产生完全相同的结果时,我切换到’/ fp:精确’,这是很好的,从那以后,一切都是桃子.然而,现在我正在使用u在Ubuntu Linux 10.04上编译同一个库,我看到类似的行为,我想知道它是否可能有类似的根本原因.我的g构建的数值结果与VC构建的数值结果略有不同.这带给我我的问题:
题:
g对VC中的“fp:fast”和“fp:precise”选项有相同或相似的参数? (和他们是什么?我想激活’fp:精确’等价物.)
更详细信息:
我使用’make’编译,它调用g.据我所知(make文件有点隐含,并不是由我写的),g调用中添加的唯一参数是“正常”(包括文件夹和要编译的文件)和-fPIC(我不知道这个开关是什么,我在’man’页面上看不到它).
“man g”中唯一的相关参数似乎是打开优化选项. (例如,安全数学优化).但是,我不认为我打开任何东西,我只想关闭相关优化.
我已经尝试发布和调试版本,VC为发布和调试提供相同的结果,g给出相同的发布和调试结果,但是我无法获得g版本,以提供与VC版本相同的结果.
解决方法
在我的经验中,大多数/ fp:快速影响(和潜在的差异)来自于编译器自由地执行代数变换.这可以像更改总和顺序一样简单:
( a + b ) + c --> a + ( b + c)
可以像*(b c)一样分布乘法,并且可以获得一些相当复杂的变换 – 所有这些都旨在重用以前的计算.
在无限精度下,这种变换当然是良性的 – 但是在有限的精度下,它们实际上改变了结果.作为玩具的例子,尝试a = b = 2 ^( – 23),c = 1的summand-order-example.MS的Eric Fleegal describes it in much more detail.
在这方面,最接近/ fp:precise的gcc开关是-fno-unsafe-math-optimizations.我认为这是默认的 – 也许您可以尝试明确设置它,看看它是否有所作为.类似地,您可以尝试明确地关闭所有的-ffast-math优化:-fno-finite-math-only,-fmath-errno,-ftrapping-math,-frounding-math和-fsignaling-nans(最后2个选项是非默认!)
Ruby 是否有一个 string.startswith("abc") 内置方法?
Ruby 有some_string.starts_with("abc")
内置的方法吗?
答案1
小编典典它被称为String#start_with?
,而不是String#startswith
:在 Ruby
中,布尔型方法的名称以结尾,?
方法名称中的单词以 . 分隔_
。在 Rails
上,您可以使用别名String#starts_with?
(注意复数
- 并注意此方法已弃用)。就个人而言,我更喜欢String#starts_with?
实际String#start_with?
在 Python 中,是否有一个 Python 标准函数可以像 bash 一样将字符串解析为 argv 列表?
如何解决在 Python 中,是否有一个 Python 标准函数可以像 bash 一样将字符串解析为 argv 列表?
考虑以下字符串:
./kmux.py -r ''messenger.* xx''
如果 kmux.py
是一个 python 脚本,并且上面的字符串作为参数提供给 bash,那么 sys.argv
将是以下列表:
["./kmux.py","-r","messenger.* xx"]
是否有标准的python函数可以将第一个字符串转换为数组?
我可以在 Python 中手动复制 bash 的逻辑以获取原始字符串并将其转换为这个数组,但我很好奇是否已经存在这样的函数。
解决方法
像这样使用默认的 shlex
包:
import shlex
shlex.split("''./kmux.py -r ''messenger.* xx''")
在某些相似性度量的意义上,是否有一个 python 函数来获取“唯一”字符串?
如何解决在某些相似性度量的意义上,是否有一个 python 函数来获取“唯一”字符串?
我有一组字符串(在我的情况下,它是熊猫数据框的一列,但可以将替代数据结构视为列表/数组/...),我想获得所有“唯一的" 来自该集合的值,其中 unique 不是精确匹配而是基于某些相似性度量的模糊匹配。 举个例子,假设我有这组起始字符串:
错误字符串 |
---|
源和目标校验和不匹配 213423 != 647687 transfer-Failed |
源和目标校验和不匹配 654766 != 987821 transfer-Failed |
1 次尝试后的 SSL 握手 |
1 次尝试后的 SSL 握手\\t |
1 次尝试后的 SSL 握手。\\n |
无法连接到 IP:PORT/PATH{1} 用户超时* |
无法连接到 IP:PORT/PATH{2} 用户超时* |
*其中 IP、PORT 和 PATH 是可能长字符串的占位符,其中的字符从选项 {1} 到选项 {2} 完全不同。
我想要的输出是 3 个独特模式的列表(我将第三个标记为可选,因为我想它会更棘手):
独特的图案 | 要求 |
---|---|
源和目标校验和不匹配 213423 != 647687 transfer-Failed | 强制性 |
1 次尝试后的 SSL 握手 | 强制性 |
无法连接到 IP:PORT/PATH{1} 用户超时* | 可选 |
我知道一些模糊匹配的方法,例如在 Levenshtein
和 fuzzywuzzy
包中,我认为 fuzzywuzzy.fuzz.partial_token_set_ratio
和 partial_ratio
做我想做的,但仅用于比较 2 个字符串或一个字符串与所有其他字符串 (fuzzywuzzy.process.extract
),而不是将所有字符串放在一起。
我开始自己实现,但我很快意识到这有点棘手,你需要仔细考虑它的扩展方式,所以我想知道是否已经有一些东西可以用于此目的。您有什么建议吗?
提前致谢:)
解决方法
我确定有更好的方法,但使用 Levenshtein
并且一次只能比较 2 个字符串,我想出了这个:
import Levenshtein as lev
RATIO_LIMIT = 0.7
strings = (
"Source and destination checksums do not match 213423 != 647687 transfer-failed","Source and destination checksums do not match 654766 != 987821 transfer-failed","SSL handshake after 1 attempts","SSL handshake after 1 attempts\\t","SSL handshake after 1 attempts.\\n","Impossible to connect to IP:PORT/PATH{1} User timeout over*","Impossible to connect to IP:PORT/PATH{2} User timeout over*",)
uniques = []
for string in strings:
if not uniques:
uniques.append(string)
for unique in uniques:
if lev.ratio(unique.lower().strip(),string.lower().strip()) > RATIO_LIMIT:
break
else:
uniques.append(string)
print(uniques)
现在我相信你可以乱用 RATIO_LIMIT
以获得更好的结果我只是选择了一个随机数来获得相似性,但是这是否适用于 PATH,IP and PORT
的不同值,因为我猜他们是否太长了这个方法不行
关于是否有一个 Python 函数可以在不重复某些元素的情况下进行排列?和python不重复字符串的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于c – 是否有一个(Linux)g相当于Visual Studio中使用的/ fp:precise和/ fp:fast标志?、Ruby 是否有一个 string.startswith("abc") 内置方法?、在 Python 中,是否有一个 Python 标准函数可以像 bash 一样将字符串解析为 argv 列表?、在某些相似性度量的意义上,是否有一个 python 函数来获取“唯一”字符串?等相关内容,可以在本站寻找。
本文标签: