小编Sha*_*kti的帖子

使用Scala如何找出字符串中是否存在字符列表,其中有重复的字符?

考虑下面的例子,我有一组给定的单词和一组给定的字符.我必须找出是否有一个词可以从字符列表中产生,同时尊重重复 - 即该字是多字节字符的多字节子集.因此对于字符List('a', 'p', 'q', 'r', 's'),单词"apqsrr"不是有效的解决方案,因为它包含两个'r's.我能想到的通常的解决方案是迭代单词的字符,如果在字符中找到匹配,则从字符列表中删除该字符.这可以处理重复,但我不知道如何以更实用的方式在scala中编写它.

根据我对scala的了解,我能够编写以下代码,如果没有重复的字母,它可以正常工作.

val words = List("apqsrr", "avadavat", "avail", "availability", "available", 
  "avalanche", "avantgarde", "avarice")
val chars = List('a', 'p', 'q', 'r', 's')

for (w <- words if w.forall(chars.contains)) yield w

// another way 
words.find(_.forall(chars.contains))
Run Code Online (Sandbox Code Playgroud)

string scala scala-collections

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

如何将所有列与pandas中的一列进行比较?

对于以下df

                A       B       ..... THRESHOLD             
DATE                                       
2011-01-01       NaN       NaN  .....      NaN   
2012-01-01 -0.041158 -0.161571  ..... 0.329038   
2013-01-01  0.238156  0.525878  ..... 0.110370   
2014-01-01  0.606738  0.854177  ..... -0.095147   
2015-01-01  0.200166  0.385453  ..... 0.166235 
Run Code Online (Sandbox Code Playgroud)

我必须将N,A,B,C ....等N列与THRESHOLD进行比较,然后输出结果

df['A_CALC'] = np.where(df['A'] > df['THRESHOLD'], 1, -1)
df['B_CALC'] = np.where(df['B'] > df['THRESHOLD'], 1, -1)
Run Code Online (Sandbox Code Playgroud)

如何在不为每列显式写一个语句的情况下对所有列(A,B,C ...)应用上述内容?

python numpy dataframe pandas

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

如何将填充的 0 行添加到 Pandas 数据框中?

我有以下形式的 df

import pandas as pd
df = pd.DataFrame({'col1' : [1,1,1,2,2,3,3,4],
    'col2' : ['a', 'b', 'c', 'a', 'b', 'a', 'b', 'a'],
    'col3' : ['x', 'y', 'z', 'p','q','r','s','t']
        })

col1    col2    col3
0   1   a   x
1   1   b   y
2   1   c   z
3   2   a   p
4   2   b   q
5   3   a   r
6   3   b   s
7   4   a   t


df2 = df.groupby(['col1','col2'])['col3'].sum()

df2

col1  col2
1     a       x
      b       y
      c       z
2     a       p
      b …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何从集合中删除数组?

我有一个Integer []的集合,我想从中删除一些元素,但似乎通常的删除方法不起作用.除了迭代和比较Integer []的每个元素之外,还有其他解决方法吗?以下是此问题的测试代码.

import java.util.ArrayList;
import java.util.List;


public class Test {

    public static void main(String args[]){
        List<Integer[]> subSet = new ArrayList<Integer[]>();
        subSet.add(new Integer[]{0,1,2,3,4});
        subSet.add(new Integer[]{0,1,2,3,5});
        subSet.add(new Integer[]{0,0,0,0,0});
        //prune this collection by removing an Integer[] 
        Integer[] elementToRemove = {0,0,0,0,0};
        System.out.println( "Before " + subSet.size());
        subSet.remove(elementToRemove);
        System.out.println( "After " + subSet.size());
        //
    }
}
Run Code Online (Sandbox Code Playgroud)

java collections

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

如何过滤scala中的元组列表?

我在Scala中有以下列表,我希望根据一个标准进行过滤,如果有任何元组具有重复的第一个值,请从下面的示例中我想要排除

List((a,1), (a,2)) 
Run Code Online (Sandbox Code Playgroud)

因为它有"a"作为重复.

scala tuples filter scala-collections

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

在Scala中如何确保理解遍历所有非空列表?

我有以下两个列表,我不确定在运行时list2是空还是满,但list1将始终为非空,如何确保以下for循环值列表至少打印

val list1 = List(1,2,3)                   //> list1  : List[Int] = List(1, 2, 3)
val list2 = List()                        //> list2  : List[Nothing] = List()
for( counti <- list1 ; countj <- list2 ) yield println (counti + " - " + countj)
                                                  //> res7: List[Unit] = List()
Run Code Online (Sandbox Code Playgroud)

我期待着类似的东西

1 - BLANK
2 - BLANK
3 - BLANK
Run Code Online (Sandbox Code Playgroud)

但上面的循环给我空白结果列表()

scala scala-collections

0
推荐指数
1
解决办法
954
查看次数

在Scala中,如何在处理流时将当前值与先前值进行比较?

我是scala的新手,所以不确定如何处理这个问题?基本上我试图为报价流找到移动平均线交叉.我不知道如何获得以前的值来将它们与当前值进行比较?

if ( fastMovingAverage(n-1) > slowMovingAverage(n-1) && fastMovingAverage(n) < slowMovingAverage(n) )
then do some action



package com.example.csv

import scala.io.Source


object FileParser {
  val TIMESTAMP_LOCATION = 3
  val BID_LOCATION = 4
  val OFFER_LOCATION = 5
  val FAST_WINDOW_SIZE = 5
  val SLOW_WINDOW_SIZE = 10

  def main(args: Array[String]) = {
    val records = Source.fromFile("Sample.csv")
    .getLines()
    .drop(1)
    .map(_.split(","))
    .takeWhile( _ != null)
    .sliding(SLOW_WINDOW_SIZE , 1)
    .foreach(x => movingAverage(x))
  }

  def movingAverage(numbers: Seq[Array[String]]) = {
    val listOfBids = numbers.map(x => x(BID_LOCATION).toDouble)
    val slowAverage = listOfBids.reduceLeft(_ …
Run Code Online (Sandbox Code Playgroud)

scala

0
推荐指数
1
解决办法
931
查看次数