草庐IT

排列去重

全部标签

用于重新排列列表的 Python 标准库函数

我想知道Python中是否有一个标准库函数可以重新排列列表的元素,如下所示:a=[1,2,3,4,5,6,7]function(a)printaa=[1,7,2,6,3,5,4]它应该从原始列表的开头获取一个元素,然后从结尾获取一个元素,然后从开头获取第二个元素,依此类推。然后重新排列列表。问候, 最佳答案 您可以构建一个快速、高效的内存generator使用itertools哪个做你想要的:fromitertoolsimportchain,izipdefreorder(a):gen=chain.from_iterable(izip

flink数据流 单(kafka)流根据id去重

方法1不推荐packagecom.yy.uniqimportorg.apache.flink.configuration.{Configuration,RestOptions}importorg.apache.flink.streaming.api.scala.StreamExecutionEnvironmentimportorg.apache.flink.table.api.bridge.scala.StreamTableEnvironmentimportjava.time.ZoneId/***desc:*stream1joinid去重后的stream1onl.时间戳=r.时间戳确保同一个i

python - 如何生成没有 “moving” 零的列表的排列。在 Python 中

使用itertools工具,我得到了给定数字列表的所有可能排列,但如果列表如下:List=[0,0,0,0,3,6,0,0,5,0,0]itertools不“知道”迭代零是浪费工作,例如以下迭代将出现在结果中:List=[0,3,0,0,0,6,0,0,5,0,0]List=[0,3,0,0,0,6,0,0,5,0,0]它们是相同的,但itertools只取第一个零(例如)并将其移动到列表中的第四位,反之亦然。问题是:我怎样才能只迭代一些选定的数字而保留其他数字,例如零?它可以有或没有itertools。 最佳答案 Voilá-它现

python - 如何根据列表中的部分键重新排列有序字典

我正在根据列表中的键重新排列一些有序字典。例如:old_OD=OrderedDict([('cat_1',1),('dog_1',2),('cat_2',3),('fish_1',4),('dog_2',5)])现在我有一个组的订单列表。order=['dog','cat','fish']然后将字典中的项目组合在一起得到结果,如下所示:new_OD=OrderedDict([('dog_1',2),('dog_2',5),('cat_1',1),('cat_2',3),('fish_1',4)])我发现了一些很好的相关问题HowtoreorderODbasedonlist和Re-ord

python - 检查一个字符串的字母在另一个字符串中是否按顺序排列

如果它只是检查test_string中的字母是否也在control_string中,我不会遇到这个问题。我将简单地使用下面的代码。ifset(test_string.lower())但我还面临一个相当复杂的任务,即辨别control_string与test_string中的顺序相同。例如,test_string='Dih'control_string='Danish'Truetest_string='Tbl'control_string='Bottle'False我想到了使用for迭代器来比较字母的索引,但是很难想到合适的算法。foriintest_string.lower():for

python - 使用 Numpy 重新排列矩阵元素

我有一个NumPy矩阵,我已对其进行简化以举例说明:abcdefA=[[0,1,2,3,4,5],b[1,0,3,4,5,6],c[2,3,0,5,6,7],d[3,4,5,0,7,8],e[4,5,6,7,0,9],f[5,6,7,8,9,0]]“交叉点”的数字很重要,但它们的顺序不正确。我想重新排列行和列,使新顺序为[a、d、b、e、c、f],但我称之为“交集”的这个值是相同的。下面我已经开始按照我想要的方式转换矩阵。填充“e”行涉及查看上面的交叉点(e,a)(=4),然后(e,d)(=7),然后(e,b)(=5),(e,e),(e,c),和(e,f)adbecfA1=[[0,3,

python - 在 Python 中,如何生成每列和每行只有一个元素的数组的排列?

例如:假设您有以下数组:[1,2,3][4,5,6][7,8,9]并且您想生成这个数组:[1,5,9][1,6,8][4,2,9][4,8,3][7,2,6][7,5,3] 最佳答案 importitertoolsA=[[1,2,3],[4,5,6],[7,8,9]]forPinitertools.permutations(range(len(A))):print[A[p][i]fori,pinenumerate(P)]打印:[1,5,9][1,8,6][4,2,9][4,8,3][7,2,6][7,5,3]

python - 如何将 python 中的文本排列到终端的列中?

我正在终端窗口中打印出脚本中的一些值,如下所示:foriinitems:print"Name:%sPrice:%d"%(i.name,i.price)如何将这些排列成列? 最佳答案 如果您知道两列中数据的最大长度,那么您可以使用格式限定符。例如,如果名称最多20个字符,而价格将适合10个字符,您可以这样做print"Name:%-20sPrice:%10d"%(i.name,i.price)这比使用制表符要好,因为制表符在某些情况下不会对齐(例如,如果一个名称比另一个名称长很多)。如果某些名称不适合可用空间,那么您可以使用.格式限定

python - +-r, +-s 的所有排列

给定两个数字r和s,我想得到n+-r和m+-s。例如(r=3.14和s=2.71),n=1m=1out=[(+r,+s),(+r,-s),(-r,+s),(-r,-s),(+s,+r),(+s,-r),(-s,+r),(-s,-r)]n=1m=2out=[(+r,+s,+s),(+r,-s,+s),(-r,+s,+s),(-r,-s,+s),...(+s,+r,+s),(-s,+r,+s),(+s,-r,+s),(-s,-r,+s),......]使用itertools.product([+r,-r],repeat=n)我可以获得r和的列表分开,我只需要将它们交织在一起,但我不确定这样

python - 如何检查排列是否具有相等的奇偶性?

我正在寻找一种方法来检查2个排列(由列表表示)是否属于相同的parity。请注意,我对它们是偶数还是奇数不感兴趣,只关心是否相等。我是Python的新手,下面给出了我天真的解决方案作为答复。我期待着Python专家向我展示一些很酷的技巧,以在更简洁、更优雅的Python代码中实现相同的目标。 最佳答案 如果我们将两个排列结合起来,当每个排列具有相同的奇偶校验时,结果将具有偶校验,如果它们具有不同的奇偶校验,则结果将具有奇校验。因此,如果我们解决奇偶校验问题,比较两个不同的排列就很简单了。奇偶性可以按如下方式确定:选择一个任意元素,找